RuneHive-Game
Loading...
Searching...
No Matches
MonsterDef.kt
Go to the documentation of this file.
1package org.jire.runehiveps.defs
2
3import com.google.gson.annotations.SerializedName
4
5/**
6 * @author Jire
7 */
8data class MonsterDef(
9 val id: Int,
10 val name: String,
11 @SerializedName("last_updated") val lastUpdated: String,
12 val incomplete: Boolean,
13 val members: Boolean,
14 @SerializedName("release_date") val releaseDate: String,
15 @SerializedName("combat_level") val combatLevel: Int,
16 val size: Int,
17 val hitpoints: Int,
18 @SerializedName("max_hit") val maxHit: Int,
19 @SerializedName("attack_type") val attackType: Array<String>,
20 @SerializedName("attack_speed") val attackSpeed: Int,
21 val aggressive: Boolean,
22 val poisonous: Boolean,
23 val venomous: Boolean,
24 @SerializedName("immune_poison") val immunePoison: Boolean,
25 @SerializedName("immune_venom") val immuneVenom: Boolean,
26 val attributes: Array<String>,
27 val category: Array<String>,
28 @SerializedName("slayer_monster") val slayerMonster: Boolean,
29 @SerializedName("slayer_level") val slayerLevel: Int,
30 @SerializedName("slayer_xp") val slayerXp: Double,
31 @SerializedName("slayer_masters") val slayerMasters: Array<String>,
32 val duplicate: Boolean,
33 val examine: String,
34 @SerializedName("wiki_name") val wikiName: String,
35 @SerializedName("wiki_url") val wikiURL: String,
36 @SerializedName("attack_level") val attackLevel: Int,
37 @SerializedName("strength_level") val strengthLevel: Int,
38 @SerializedName("defence_level") val defenceLevel: Int,
39 @SerializedName("magic_level") val magicLevel: Int,
40 @SerializedName("ranged_level") val rangedLevel: Int,
41 @SerializedName("attack_bonus") val attackBonus: Int,
42 @SerializedName("strength_bonus") val strengthBonus: Int,
43 @SerializedName("attack_magic") val attackMagic: Int,
44 @SerializedName("magic_bonus") val magicBonus: Int,
45 @SerializedName("attack_ranged") val attackRanged: Int,
46 @SerializedName("ranged_bonus") val rangedBonus: Int,
47 @SerializedName("defence_stab") val defenceStab: Int,
48 @SerializedName("defence_slash") val defenceSlash: Int,
49 @SerializedName("defence_crush") val defenceCrush: Int,
50 @SerializedName("defence_magic") val defenceMagic: Int,
51 @SerializedName("defence_ranged") val defenceRanged: Int,
52 val drops: Array<DropDef>
53) {
54 override fun equals(other: Any?): Boolean {
55 if (this === other) return true
56 if (javaClass != other?.javaClass) return false
57
58 other as MonsterDef
59
60 if (id != other.id) return false
61 if (name != other.name) return false
62 if (lastUpdated != other.lastUpdated) return false
63 if (incomplete != other.incomplete) return false
64 if (members != other.members) return false
65 if (releaseDate != other.releaseDate) return false
66 if (combatLevel != other.combatLevel) return false
67 if (size != other.size) return false
68 if (hitpoints != other.hitpoints) return false
69 if (maxHit != other.maxHit) return false
70 if (!attackType.contentEquals(other.attackType)) return false
71 if (attackSpeed != other.attackSpeed) return false
72 if (aggressive != other.aggressive) return false
73 if (poisonous != other.poisonous) return false
74 if (venomous != other.venomous) return false
75 if (immunePoison != other.immunePoison) return false
76 if (immuneVenom != other.immuneVenom) return false
77 if (!attributes.contentEquals(other.attributes)) return false
78 if (!category.contentEquals(other.category)) return false
79 if (slayerMonster != other.slayerMonster) return false
80 if (slayerLevel != other.slayerLevel) return false
81 if (slayerXp != other.slayerXp) return false
82 if (!slayerMasters.contentEquals(other.slayerMasters)) return false
83 if (duplicate != other.duplicate) return false
84 if (examine != other.examine) return false
85 if (wikiName != other.wikiName) return false
86 if (wikiURL != other.wikiURL) return false
87 if (attackLevel != other.attackLevel) return false
88 if (strengthLevel != other.strengthLevel) return false
89 if (defenceLevel != other.defenceLevel) return false
90 if (magicLevel != other.magicLevel) return false
91 if (rangedLevel != other.rangedLevel) return false
92 if (attackBonus != other.attackBonus) return false
93 if (strengthBonus != other.strengthBonus) return false
94 if (attackMagic != other.attackMagic) return false
95 if (magicBonus != other.magicBonus) return false
96 if (attackRanged != other.attackRanged) return false
97 if (rangedBonus != other.rangedBonus) return false
98 if (defenceStab != other.defenceStab) return false
99 if (defenceSlash != other.defenceSlash) return false
100 if (defenceCrush != other.defenceCrush) return false
101 if (defenceMagic != other.defenceMagic) return false
102 if (defenceRanged != other.defenceRanged) return false
103 return drops.contentEquals(other.drops)
104 }
105
106 override fun hashCode(): Int {
107 var result = id
108 result = 31 * result + name.hashCode()
109 result = 31 * result + lastUpdated.hashCode()
110 result = 31 * result + incomplete.hashCode()
111 result = 31 * result + members.hashCode()
112 result = 31 * result + releaseDate.hashCode()
113 result = 31 * result + combatLevel
114 result = 31 * result + size
115 result = 31 * result + hitpoints
116 result = 31 * result + maxHit
117 result = 31 * result + attackType.contentHashCode()
118 result = 31 * result + attackSpeed
119 result = 31 * result + aggressive.hashCode()
120 result = 31 * result + poisonous.hashCode()
121 result = 31 * result + venomous.hashCode()
122 result = 31 * result + immunePoison.hashCode()
123 result = 31 * result + immuneVenom.hashCode()
124 result = 31 * result + attributes.contentHashCode()
125 result = 31 * result + category.contentHashCode()
126 result = 31 * result + slayerMonster.hashCode()
127 result = 31 * result + slayerLevel
128 result = 31 * result + slayerXp.hashCode()
129 result = 31 * result + slayerMasters.contentHashCode()
130 result = 31 * result + duplicate.hashCode()
131 result = 31 * result + examine.hashCode()
132 result = 31 * result + wikiName.hashCode()
133 result = 31 * result + wikiURL.hashCode()
134 result = 31 * result + attackLevel
135 result = 31 * result + strengthLevel
136 result = 31 * result + defenceLevel
137 result = 31 * result + magicLevel
138 result = 31 * result + rangedLevel
139 result = 31 * result + attackBonus
140 result = 31 * result + strengthBonus
141 result = 31 * result + attackMagic
142 result = 31 * result + magicBonus
143 result = 31 * result + attackRanged
144 result = 31 * result + rangedBonus
145 result = 31 * result + defenceStab
146 result = 31 * result + defenceSlash
147 result = 31 * result + defenceCrush
148 result = 31 * result + defenceMagic
149 result = 31 * result + defenceRanged
150 result = 31 * result + drops.contentHashCode()
151 return result
152 }
153}