From e61f4ef95a2a00bc09a2eb514f1458e41d83b715 Mon Sep 17 00:00:00 2001 From: Trevor Flynn Date: Thu, 17 Aug 2017 19:47:07 -0800 Subject: [PATCH] Adding support for mining skill --- game/src/plugins/skills/mining/meta.toml | 14 ++ game/src/plugins/skills/mining/src/gem.kt | 10 ++ .../skills/mining/src/mining.plugin.kts | 5 + game/src/plugins/skills/mining/src/ore.kt | 144 ++++++++++++++++++ game/src/plugins/skills/mining/src/pickaxe.kt | 21 +++ .../src/plugins/skills/mining/src/respawn.kts | 6 + 6 files changed, 200 insertions(+) create mode 100644 game/src/plugins/skills/mining/meta.toml create mode 100644 game/src/plugins/skills/mining/src/gem.kt create mode 100644 game/src/plugins/skills/mining/src/mining.plugin.kts create mode 100644 game/src/plugins/skills/mining/src/ore.kt create mode 100644 game/src/plugins/skills/mining/src/pickaxe.kt create mode 100644 game/src/plugins/skills/mining/src/respawn.kts diff --git a/game/src/plugins/skills/mining/meta.toml b/game/src/plugins/skills/mining/meta.toml new file mode 100644 index 00000000..162162ac --- /dev/null +++ b/game/src/plugins/skills/mining/meta.toml @@ -0,0 +1,14 @@ +name = "Mining Skill" +package = "org.apollo.game.plugin.skills.mining" +authors = [ + "Graham", + "Mikey`", + "WH:II:DOW", + "Requa", + "Clifton", + "tlf30" + ] + +[config] +srcDir = "src/" +testDir = "test/" \ No newline at end of file diff --git a/game/src/plugins/skills/mining/src/gem.kt b/game/src/plugins/skills/mining/src/gem.kt new file mode 100644 index 00000000..e3b0de56 --- /dev/null +++ b/game/src/plugins/skills/mining/src/gem.kt @@ -0,0 +1,10 @@ + + +data class Gem(id: Int, chance: Int) + +val GEMS = Array( + Gem(1623, 0), // uncut sapphire + Gem(1605, 0), // uncut emerald + Gem(1619, 0), // uncut ruby + Gem(1617, 0) // uncut diamond +) \ No newline at end of file diff --git a/game/src/plugins/skills/mining/src/mining.plugin.kts b/game/src/plugins/skills/mining/src/mining.plugin.kts new file mode 100644 index 00000000..3a71de22 --- /dev/null +++ b/game/src/plugins/skills/mining/src/mining.plugin.kts @@ -0,0 +1,5 @@ +import org.apollo.game.action.DistancedAction +import org.apollo.game.model.entity.EquipmentConstants +import org.apollo.game.model.entity.Skill + + diff --git a/game/src/plugins/skills/mining/src/ore.kt b/game/src/plugins/skills/mining/src/ore.kt new file mode 100644 index 00000000..35b05a4f --- /dev/null +++ b/game/src/plugins/skills/mining/src/ore.kt @@ -0,0 +1,144 @@ + + +/* +Thanks to Mikey` for helping +to find some of the item/object IDs, minimum levels and experiences. +Thanks to Clifton for helping +to find some of the expired object IDs. + */ + +data class Ore(id: Int, objects: Map, level: Int, exp: Float, respawn: Int) + +val ORE_OBJECTS = Array( + Ore(434, CLAY_OBJECTS, 1, 5, 3), // clay + Ore(436, COPPER_OBJECTS, 1, 17.5, 6), // copper + Ore(438, TIN_OBJECTS, 1, 17.5, 6), // tin + Ore(440, IRON_OBJECTS, 15, 35, 16), // iron + Ore(453, COAL_OBJECTS, 30, 50, 100), // coal + Ore(444, GOLD_OBJECTS, 40, 65, 200), // gold + Ore(442, SILVER_OBJECTS, 20, 40, 200), // silver + Ore(447, MITHRIL_OBJECTS, 55, 80, 400), // mithril + Ore(449, ADAMANT_OBJECTS, 70, 95, 800), // adamant + Ore(451, RUNITE_OBJECTS, 85, 125, 2500) // runite +) + +val ORES = asMap() +val EXPIRED_ORES = asMap() + +for (ore in ORE_OBJECTS) { + for (key in ore.objects.keys) { + ORES.put(key, ore) + EXPIRED_ORES.put(ore.objects.(get), true) + } +} + +val CLAY_OBJECTS = mapOf( + 2180 to 450, + 2109 to 451, + 14904 to 14896, + 14905 to 14897 +) + +val COPPER_OBJECTS = mapOf( + 11960 to 11555, + 11961 to 11556, + 11962 to 11557, + 11936 to 11552, + 11937 to 11553, + 11938 to 11554, + 2090 to 450, + 2091 to 451, + 14906 to 14898, + 14907 to 14899, + 14856 to 14832, + 14857 to 14833, + 14858 to 14834 +) + +val TIN_OBJECTS = mapOf( + 11597 to 11555, + 11958 to 11556, + 11959 to 11557, + 11933 to 11552, + 11934 to 11553, + 11935 to 11554, + 2094 to 450, + 2095 to 451, + 14092 to 14894, + 14903 to 14895 +) + +val IRON_OBJECTS = mapOf( + 11954 to 11555, + 11955 to 11556, + 11956 to 11557, + 2092 to 450, + 2093 to 451, + 14900 to 14892, + 14901 to 14893, + 14913 to 14915, + 14914 to 14916 +) + +val COAL_OBJECTS = mapOf( + 11963 to 11555, + 11964 to 11556, + 11965 to 11557, + 11930 to 11552, + 11931 to 11553, + 11932 to 11554, + 2096 to 450, + 2097 to 451, + 14850 to 14832, + 14851 to 14833, + 14852 to 14834 +) + +val SILVER_OBJECTS = mapOf ( + 11948 to 11555, + 11949 to 11556, + 11950 to 11557, + 2100 to 450, + 2101 to 451 +) + +val GOLD_OBJECTS = mapOf( + 11951 to 11555, + 11952 to 11556, + 11953 to 11557, + 2098 to 450, + 2099 to 451 +) + +val MITHRIL_OBJECTS = mapOf( + 11945 to 11555, + 11946 to 11556, + 11947 to 11557, + 11942 to 11552, + 11943 to 11553, + 11944 to 11554, + 2102 to 450, + 2103 to 451, + 14853 to 14832, + 14854 to 14833, + 14855 to 14834 +) + +val ADAMANT_OBJECTS = mapOf( + 11939 to 11552, + 11940 to 11553, + 11941 to 11554, + 2104 to 450, + 2105 to 451, + 14862 to 14832, + 14863 to 14833, + 14864 to 14834 +) + +val RUNITE_OBJECTS = mapOf( + 2106 to 450, + 2107 to 451, + 14859 to 14832, + 14860 to 14833, + 14861 to 14834 +) \ No newline at end of file diff --git a/game/src/plugins/skills/mining/src/pickaxe.kt b/game/src/plugins/skills/mining/src/pickaxe.kt new file mode 100644 index 00000000..dccf2caf --- /dev/null +++ b/game/src/plugins/skills/mining/src/pickaxe.kt @@ -0,0 +1,21 @@ +import org.apollo.game.model.Animation; + +data class Pickaxe(id: Int, level: Int, animation: Animation, pulses: Int) + +val PICKAXES = Array( + Pickaxe(1265, 1, 625, 8), // bronze + Pickaxe(1267, 1, 626, 7), // iron + Pickaxe(1269, 1, 627, 6), // steel + Pickaxe(1273, 21, 629, 5), // mithril + Pickaxe(1271, 31, 628, 4), // adamant + Pickaxe(1275, 41, 624, 3) // rune +) + +val PICKAXE_IDS: IntArray = intArrayOf( + 1275, // rune + 1271 // adamant + 1273, // mithril + 1269, // steel + 1267, // iron + 1265, // bronze +) \ No newline at end of file diff --git a/game/src/plugins/skills/mining/src/respawn.kts b/game/src/plugins/skills/mining/src/respawn.kts new file mode 100644 index 00000000..5ff37104 --- /dev/null +++ b/game/src/plugins/skills/mining/src/respawn.kts @@ -0,0 +1,6 @@ + + + +fun respawn_pulses(base: Int, players: Int) { + return base - players * base / (world.playerRepository.size() * 2); +} \ No newline at end of file