diff --git a/assets/mods/basegame/creatures/CreatureHuman.json b/assets/mods/basegame/creatures/CreatureHuman.json index 06e1756ec..261fb0a65 100644 --- a/assets/mods/basegame/creatures/CreatureHuman.json +++ b/assets/mods/basegame/creatures/CreatureHuman.json @@ -10,12 +10,12 @@ "accel": 0.67, "speed": 3.0, - "speedmult": [100,100,100,100,100,100,100], + "speedmult": [90,95,98,100,102,105,110], "vertstride": 12, "jumppower": 13.0, - "jumppowermult": [100,100,100,100,100,100,100], + "jumppowermult": [90,95,98,100,102,105,110], "scale": 1.0, "scalemult": [100,100,100,100,100,100,100], @@ -25,7 +25,7 @@ "reach": 100, "toolsize": 15, - + "intelligent": true, "barehandactionminheight": 80, "basebarehanddiggingsize": 8 diff --git a/assets/mods/basegame/creatures/CreaturePlayer.json b/assets/mods/basegame/creatures/CreaturePlayer.json new file mode 100644 index 000000000..cd2c714e7 --- /dev/null +++ b/assets/mods/basegame/creatures/CreaturePlayer.json @@ -0,0 +1,33 @@ +{ + "racename": "RACE_HUMAN", + "racenameplural": "RACE_HUMAN_PLURAL", + "baseheight": 40, + "basemass": 60.0, + + "strength": 1000, + "strengthmult": [100,100,100,100,100,100,100], + + "accel": 0.67, + + "speed": 3.0, + "speedmult": [100,100,100,100,100,100,100], + + "vertstride": 12, + + "jumppower": 13.0, + "jumppowermult": [100,100,100,100,100,100,100], + + "scale": 1.0, + "scalemult": [100,100,100,100,100,100,100], + + "encumbrance": 1000, + "defence": 100, + "reach": 100, + + "toolsize": 15, + + "intelligent": true, + "barehandactionminheight": 80, + "basebarehanddiggingsize": 8 + +} \ No newline at end of file diff --git a/assets/mods/basegame/items/itemid.csv b/assets/mods/basegame/items/itemid.csv index 80f4cf69d..ab878a8b1 100644 --- a/assets/mods/basegame/items/itemid.csv +++ b/assets/mods/basegame/items/itemid.csv @@ -12,7 +12,8 @@ id;classname 11;net.torvald.terrarum.modulebasegame.gameitems.ItemWallCalendar 12;net.torvald.terrarum.modulebasegame.gameitems.SledgehammerCopper 13;net.torvald.terrarum.modulebasegame.gameitems.SledgehammerSteel - +14;net.torvald.terrarum.modulebasegame.gameitems.PickaxeWood +15;net.torvald.terrarum.modulebasegame.gameitems.SledgehammerWood 16;net.torvald.terrarum.modulebasegame.gameitems.ItemWorkbench 128;net.torvald.terrarum.modulebasegame.gameitems.OreCopper diff --git a/assets/mods/basegame/materials/materials.csv b/assets/mods/basegame/materials/materials.csv index 1b28107f1..b2211416e 100644 --- a/assets/mods/basegame/materials/materials.csv +++ b/assets/mods/basegame/materials/materials.csv @@ -1,5 +1,5 @@ idst;tens;impf;dsty;fmod;endurance;tcond;reach;comments -WOOD;10;10;800;1;0.36;0.17;5;just a generic wood +WOOD;10;10;800;1;0.173;0.17;5;just a generic wood ROCK;15;210;3000;1;0.42;2.9;5;data is that of marble OORE;15;210;3000;1;0.42;2.9;5;data is that of marble OGEM;15;210;3000;1;0.42;2.9;5;data is that of marble diff --git a/src/net/torvald/terrarum/gameworld/GameWorld.kt b/src/net/torvald/terrarum/gameworld/GameWorld.kt index ca7edaa93..559f9f349 100644 --- a/src/net/torvald/terrarum/gameworld/GameWorld.kt +++ b/src/net/torvald/terrarum/gameworld/GameWorld.kt @@ -650,7 +650,7 @@ open class GameWorld( //println("[GameWorld] accumulated damage: ${terrainDamages[addr]}") // remove tile from the world - if (terrainDamages[addr] ?: 0f >= BlockCodex[getTileFromTerrain(x, y)].strength) { + if ((terrainDamages[addr] ?: 0f) >= BlockCodex[getTileFromTerrain(x, y)].strength) { val tileBroke = getTileFromTerrain(x, y) setTileTerrain(x, y, Block.AIR, false) terrainDamages.remove(addr) diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilder.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilder.kt index abc97cf5a..dacf7f549 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilder.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilder.kt @@ -14,7 +14,7 @@ object PlayerBuilder { val world = (Terrarum.ingame!! as TerrarumIngame).world val p: Actor = IngamePlayer("lol", "lol_glow", world.worldTime.TIME_T) - InjectCreatureRaw(p.actorValue, "basegame", "CreatureHuman.json") + InjectCreatureRaw(p.actorValue, "basegame", "CreaturePlayer.json") // attach sprite diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderCynthia.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderCynthia.kt index dabbdae97..599066d5f 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderCynthia.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderCynthia.kt @@ -17,7 +17,7 @@ import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack val p: HumanoidNPC = HumanoidNPC( NullAI(), -589141658L) // random value thrown - InjectCreatureRaw(p.actorValue, "basegame", "CreatureHuman.json") + InjectCreatureRaw(p.actorValue, "basegame", "CreaturePlayer.json") p.actorValue[AVKey.__PLAYER_QUICKSLOTSEL] = 0 diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderSigrid.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderSigrid.kt index cec715d01..0be43b2ce 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderSigrid.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderSigrid.kt @@ -35,7 +35,7 @@ object PlayerBuilderSigrid { p.actorValue[AVKey.SCALEBUFF] = 1.0 // Constant 1.0 for player, meant to be used by random mobs /** * fixed value, or 'base value', from creature strength of Dwarf Fortress. - * Human race uses 1000. (see CreatureHuman.json) + * Human race uses 1000. (see CreaturePlayer.json) */ p.actorValue[AVKey.STRENGTH] = 1414 // this is test character, after all. p.actorValue[AVKey.ENCUMBRANCE] = 1000 diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderTestSubject1.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderTestSubject1.kt index 120c10d18..0bd416444 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderTestSubject1.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderTestSubject1.kt @@ -14,7 +14,7 @@ object PlayerBuilderTestSubject1 { ModMgr.getGdxFile("basegame", "sprites/test_sprite_glow.properties").path(), -589141658L // random value thrown ) - InjectCreatureRaw(p.actorValue, "basegame", "CreatureHuman.json") + InjectCreatureRaw(p.actorValue, "basegame", "CreaturePlayer.json") p.actorValue[AVKey.__PLAYER_QUICKSLOTSEL] = 0 diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/PickaxeGeneric.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/PickaxeGeneric.kt index 788e6c211..244647f5b 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/PickaxeGeneric.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/PickaxeGeneric.kt @@ -241,4 +241,31 @@ class PickaxeSteel(originalID: ItemID) : GameItem(originalID) { override fun startPrimaryUse(actor: ActorWithBody, delta: Float) = if (PickaxeCore.startPrimaryUse(actor, delta, this, Terrarum.mouseTileX, Terrarum.mouseTileY)) 0L else -1L override fun endPrimaryUse(actor: ActorWithBody, delta: Float) = PickaxeCore.endPrimaryUse(actor, delta, this) +} + +/** + * Created by minjaesong on 2023-10-12. + */ +class PickaxeWood(originalID: ItemID) : GameItem(originalID) { + internal constructor() : this("-uninitialised-") + + override var baseToolSize: Double? = BASE_MASS_AND_SIZE + override var inventoryCategory = Category.TOOL + override val isDynamic = true + override val materialId = "WOOD" + override var baseMass = material.density.toDouble() / MaterialCodex["IRON"].density * BASE_MASS_AND_SIZE + override val itemImage: TextureRegion + get() = CommonResourcePool.getAsItemSheet("basegame.items").get(8,4) + + init { + equipPosition = GameItem.EquipPosition.HAND_GRIP + maxDurability = (TOOL_DURABILITY_BASE * material.enduranceMod).roundToInt() + durability = maxDurability.toFloat() + tags.add("PICK") + originalName = "ITEM_PICK_WOOD" + } + + override fun startPrimaryUse(actor: ActorWithBody, delta: Float) = + if (PickaxeCore.startPrimaryUse(actor, delta, this, Terrarum.mouseTileX, Terrarum.mouseTileY)) 0L else -1L + override fun endPrimaryUse(actor: ActorWithBody, delta: Float) = PickaxeCore.endPrimaryUse(actor, delta, this) } \ No newline at end of file diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/SledgehammerCore.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/SledgehammerCore.kt index c1a906e04..71c6ca608 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/SledgehammerCore.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/SledgehammerCore.kt @@ -197,6 +197,33 @@ class SledgehammerSteel(originalID: ItemID) : GameItem(originalID) { originalName = "ITEM_SLEDGEHAMMER_STEEL" } + override fun startPrimaryUse(actor: ActorWithBody, delta: Float) = + if (SledgehammerCore.startPrimaryUse(actor, delta, this, Terrarum.mouseTileX, Terrarum.mouseTileY)) 0L else -1L + override fun endPrimaryUse(actor: ActorWithBody, delta: Float) = SledgehammerCore.endPrimaryUse(actor, delta, this) +} + +/** + * Created by minjaesong on 2023-10-12. + */ +class SledgehammerWood(originalID: ItemID) : GameItem(originalID) { + internal constructor() : this("-uninitialised-") + + override var baseToolSize: Double? = BASE_MASS_AND_SIZE + override var inventoryCategory = Category.TOOL + override val isDynamic = true + override val materialId = "WOOD" + override var baseMass = material.density.toDouble() / MaterialCodex["IRON"].density * BASE_MASS_AND_SIZE + override val itemImage: TextureRegion + get() = CommonResourcePool.getAsItemSheet("basegame.items").get(10,4) + + init { + equipPosition = GameItem.EquipPosition.HAND_GRIP + maxDurability = (TOOL_DURABILITY_BASE * material.enduranceMod).roundToInt() + durability = maxDurability.toFloat() + tags.add("SLEDGEHAMMER") + originalName = "ITEM_WOODEN_MALLET" + } + override fun startPrimaryUse(actor: ActorWithBody, delta: Float) = if (SledgehammerCore.startPrimaryUse(actor, delta, this, Terrarum.mouseTileX, Terrarum.mouseTileY)) 0L else -1L override fun endPrimaryUse(actor: ActorWithBody, delta: Float) = SledgehammerCore.endPrimaryUse(actor, delta, this)