From 5bec1d5d5777b473c38f2606f5bbe9e0e0e96573 Mon Sep 17 00:00:00 2001 From: Kherae Date: Sat, 23 Mar 2024 03:59:34 -0700 Subject: [PATCH] unified and corrected camoflage shell --- .../poptopish/shadowtop/shadowtop.monstertype | 601 +++++++++--------- .../monsterstatus_camouflage100.lua | 26 - .../monsterstatus_camouflage85.lua | 25 - .../monsterstatus_camouflage99.lua | 26 - .../monsterstatus_camouflage99.statuseffect | 8 +- ...a => monsterstatus_camouflage_unified.lua} | 6 +- 6 files changed, 309 insertions(+), 383 deletions(-) delete mode 100644 stats/monstereffects/monsterstatus_camouflage100.lua delete mode 100644 stats/monstereffects/monsterstatus_camouflage85.lua delete mode 100644 stats/monstereffects/monsterstatus_camouflage99.lua rename stats/monstereffects/{monsterstatus_camouflage55.lua => monsterstatus_camouflage_unified.lua} (60%) diff --git a/monsters/walkers/poptopish/shadowtop/shadowtop.monstertype b/monsters/walkers/poptopish/shadowtop/shadowtop.monstertype index 3e8118e5324..ddfa9fa5cda 100644 --- a/monsters/walkers/poptopish/shadowtop/shadowtop.monstertype +++ b/monsters/walkers/poptopish/shadowtop/shadowtop.monstertype @@ -1,302 +1,303 @@ { - "type" : "shadowtop", - "shortdescription" : "Shadowtop", - "description" : "A terrible mutation of the poptop. Aggressive and dangerous.", - - "categories" : [ "shadowtop" ], - "parts" : [ "body", "bodyfullbright" ], - - "animation" : "shadowtop.animation", - - "dropPools" : [ - { - "default" : "poptopTreasure", - "bow" : "poptopHunting", - "firebow" : "poptopHunting", - "icebow" : "poptopHunting", - "poisonbow" : "poptopHunting", - "electricbow" : "poptopHunting", - "cosmicbow" : "poptopHunting", - "radioactivebow" : "poptopHunting", - "shadowbow" : "poptopHunting" - } - ], - - "baseParameters" : { - "scripts" : [ - "/monsters/monster.lua", - "/stats/monstereffects/monsterstatus_camouflage55.lua", - "/scripts/golemancer/gol_monstermain.lua" - ], - "tickEvoTime" : 5, - "agingEvoTime" : 500, - "evolutions" : [ "/scripts/golemancer/evolutions/adultshadowtop.evo" ], - - "behavior" : "monster", - - "behaviorConfig" : { - "damageOnTouch" : true, - - "targetQueryRange" : 20, - "targetOnDamage" : true, - "keepTargetInSight" : true, - "keepTargetInRange" : 50, - "targetOutOfSightTime" : 2.5, - - "foundTargetActions" : [ { "name" : "action-aggrohop" } ], - - "fleeActions" : [], - - "hostileActions" : [ - { - "name" : "action-fire", - "cooldown" : 2.5, - "parameters" : { - "maximumRange" : 3, - "minimumRange" : 1, - "windupState" : "firewindup2", - "windupTime" : 0.5, - - "projectileType" : "meleebite", - "fireOffset" : [0, 0.75], - - "aimAtTarget" : false, - "projectileCount" : 1, - "inaccuracy" : 1, - "aimDirection" : [0,1], - "power" : 6, - "fireSound" : "fire", - "fireState" : "fire", - - - "winddownState" : "" - } - }, - { - "name" : "action-fire", - "cooldown" : 6, - "parameters" : { - "maximumRange" : 20, - "minimumRange" : 10, - "windupState" : "firewindup", - "windupTime" : 0.4, - - "projectileType" : "futarball", - "fireOffset" : [0.875, 0.625], - - "aimAtTarget" : true, - "projectileCount" : 1, - "projectileInterval" : 0.15, - "inaccuracy" : 0, - "aimDirection" : [0,1], - "power" : 8, - "fireDelay" : 0.2, - "fireArc" : true, - "gravityMultiplier" : 0.25, - "fireSound" : "fire", - "fireState" : "fire", - - - "winddownState" : "" - } - }, - { - "name" : "action-leap", - "cooldown" : 3, - "parameters" : { - "minimumRange" : 3, - "maximumRange" : 15, - "windupTime" : 0.25, - "windupState" : "idle", - - "leapVelocity" : 35, - "collisionCheck" : true, - "highArc" : true, - "leapState" : "jump", - "fallState" : "fall", - - "winddownTime" : 0.6, - "winddownState" : "idle" - } - }, - { - "name" : "action-charge", - "cooldown" : 3, - "parameters" : { - "maximumRange" : 12, - "windupTime" : 0.5, - - "aimAtTarget" : true, - "chargeTime" : [0.5, 0.5], - "chargeSpeed" : 40, - "chargeControlForce" : 300, - "wallCrashSound" : "", - "wallCrashEmitter" : "", - - "winddownTime" : 0.5 - } - } - ], - - "periodicActions" : [], - - "approachActions" : [ - { - "name" : "approach-walk", - "parameters" : { - "canJump" : true, - "maxJumps" : 8, - "moveState" : "run", - "jumpXVelocity" : 12, - "jumpYVelocity" : 30, - "jumpXControlForce" : 50, - "minXRange" : 10, - "run" : true - } - } - ], - - "followActions" : [ - { - "name" : "approach-teleport", - "parameters" : { - } - }, - { - "name" : "approach-walk", - "parameters" : { - "canJump" : true, - "maxJumps" : 8, - "moveState" : "run", - "jumpXVelocity" : 12, - "jumpYVelocity" : 30, - "jumpXControlForce" : 50, - "minXRange" : 10, - "run" : true - } - } - ], - - "wanderActions" : [ - { - "name" : "wander-walk", - "cooldown" : 3.0, - "parameters" : { - "moveState" : "stroll", - "wanderTime" : [5, 20] - } - }, - { - "name" : "wander-walk", - "cooldown" : 6.0, - "parameters" : { - "moveState" : "walk", - "wanderTime" : [5, 5] - } - } - ] - }, - - "touchDamage" : { - "poly" : [ [0.8125, 1.25], [1.3125, 0.75], [1.3125, -1.05], [0.8125, -1.55], [-0.8125, -1.55], [-1.3125, -1.05], [-1.3125, 0.75], [-0.8125, 1.25] ], - "damage" : 14, - - "teamType" : "enemy", - "damageSourceKind" : "shadow", - "knockback" : 20, - "statusEffects" : [ ] - }, - - "metaBoundBox" : [-4, -4, 4, 4], - "scale" : 1.2, - - "movementSettings" : { - "collisionPoly" : [ [0.8125, 1.25], [1.3125, 0.75], [1.3125, 0.10], [0.8125, -0.40], [-0.8125, -0.40], [-1.3125, 0.10], [-1.3125, 0.75], [-0.8125, 1.25] ], - - "mass" : 1.0, - "walkSpeed" : 3, - "runSpeed" : 11, - - "airFriction" : 0, - - "airJumpProfile" : { - "jumpSpeed" : 65.0, - "jumpInitialPercentage" : 1.0, - "jumpHoldTime" : 0.2 - } - }, - - "bodyMaterialKind" : "organic", - - "knockoutTime" : 0.3, - "knockoutAnimationStates" : { - "damage" : "stunned" - }, - "deathParticles" : "deathPoof", - "knockoutEffect" : "", - - "statusSettings" : { - "statusProperties" : { - "targetMaterialKind" : "organic" - }, - - "appliesEnvironmentStatusEffects" : false, - "appliesWeatherStatusEffects" : true, - "minimumLiquidStatusEffectPercentage" : 0.1, - - "primaryScriptSources" : [ - "/stats/monster_primary.lua" - ], - "primaryScriptDelta" : 5, - - "stats" : { - "knockbackStunTime" : { - "baseValue" : 0.25 - }, - "knockbackThreshold" : { - "baseValue" : 9 - }, - "maxHealth" : { - "baseValue" : 90 - }, - "protection" : { - "baseValue" : 15 - }, - "healthRegen" : { - "baseValue" : 0.0 - }, - "powerMultiplier" : { - "baseValue" : 1.0 - }, - "poisonStatusImmunity" : { - "baseValue" : 1 - }, - "insanityImmunity" : { - "baseValue" : 1 - }, - "wetImmunity" : { - "baseValue" : 1 - } - }, - - "resources" : { - "stunned" : { - "deltaValue" : -1.0, - "initialValue" : 0.0 - }, - "health" : { - "maxStat" : "maxHealth", - "deltaStat" : "healthRegen", - "defaultPercentage" : 100 - } - } - }, - - "mouthOffset" : [0, 0], - "feetOffset" : [0, -8], - "capturable" : true, - "captureHealthFraction" : 0.5, - "nametagColor" : [64, 200, 255]//, - //"captureCollectables" : { "fu_monster" : "shadowtop" } - } + "type" : "shadowtop", + "shortdescription" : "Shadowtop", + "description" : "A terrible mutation of the poptop. Aggressive and dangerous.", + + "categories" : [ "shadowtop" ], + "parts" : [ "body", "bodyfullbright" ], + + "animation" : "shadowtop.animation", + + "dropPools" : [ + { + "default" : "poptopTreasure", + "bow" : "poptopHunting", + "firebow" : "poptopHunting", + "icebow" : "poptopHunting", + "poisonbow" : "poptopHunting", + "electricbow" : "poptopHunting", + "cosmicbow" : "poptopHunting", + "radioactivebow" : "poptopHunting", + "shadowbow" : "poptopHunting" + } + ], + + "baseParameters" : { + "scripts" : [ + "/monsters/monster.lua", + "/stats/monstereffects/monsterstatus_camouflage_unified.lua", + "/scripts/golemancer/gol_monstermain.lua" + ], + "camoEffectToApply":"camouflage55", + "tickEvoTime" : 5, + "agingEvoTime" : 500, + "evolutions" : [ "/scripts/golemancer/evolutions/adultshadowtop.evo" ], + + "behavior" : "monster", + + "behaviorConfig" : { + "damageOnTouch" : true, + + "targetQueryRange" : 20, + "targetOnDamage" : true, + "keepTargetInSight" : true, + "keepTargetInRange" : 50, + "targetOutOfSightTime" : 2.5, + + "foundTargetActions" : [ { "name" : "action-aggrohop" } ], + + "fleeActions" : [], + + "hostileActions" : [ + { + "name" : "action-fire", + "cooldown" : 2.5, + "parameters" : { + "maximumRange" : 3, + "minimumRange" : 1, + "windupState" : "firewindup2", + "windupTime" : 0.5, + + "projectileType" : "meleebite", + "fireOffset" : [0, 0.75], + + "aimAtTarget" : false, + "projectileCount" : 1, + "inaccuracy" : 1, + "aimDirection" : [0,1], + "power" : 6, + "fireSound" : "fire", + "fireState" : "fire", + + + "winddownState" : "" + } + }, + { + "name" : "action-fire", + "cooldown" : 6, + "parameters" : { + "maximumRange" : 20, + "minimumRange" : 10, + "windupState" : "firewindup", + "windupTime" : 0.4, + + "projectileType" : "futarball", + "fireOffset" : [0.875, 0.625], + + "aimAtTarget" : true, + "projectileCount" : 1, + "projectileInterval" : 0.15, + "inaccuracy" : 0, + "aimDirection" : [0,1], + "power" : 8, + "fireDelay" : 0.2, + "fireArc" : true, + "gravityMultiplier" : 0.25, + "fireSound" : "fire", + "fireState" : "fire", + + + "winddownState" : "" + } + }, + { + "name" : "action-leap", + "cooldown" : 3, + "parameters" : { + "minimumRange" : 3, + "maximumRange" : 15, + "windupTime" : 0.25, + "windupState" : "idle", + + "leapVelocity" : 35, + "collisionCheck" : true, + "highArc" : true, + "leapState" : "jump", + "fallState" : "fall", + + "winddownTime" : 0.6, + "winddownState" : "idle" + } + }, + { + "name" : "action-charge", + "cooldown" : 3, + "parameters" : { + "maximumRange" : 12, + "windupTime" : 0.5, + + "aimAtTarget" : true, + "chargeTime" : [0.5, 0.5], + "chargeSpeed" : 40, + "chargeControlForce" : 300, + "wallCrashSound" : "", + "wallCrashEmitter" : "", + + "winddownTime" : 0.5 + } + } + ], + + "periodicActions" : [], + + "approachActions" : [ + { + "name" : "approach-walk", + "parameters" : { + "canJump" : true, + "maxJumps" : 8, + "moveState" : "run", + "jumpXVelocity" : 12, + "jumpYVelocity" : 30, + "jumpXControlForce" : 50, + "minXRange" : 10, + "run" : true + } + } + ], + + "followActions" : [ + { + "name" : "approach-teleport", + "parameters" : { + } + }, + { + "name" : "approach-walk", + "parameters" : { + "canJump" : true, + "maxJumps" : 8, + "moveState" : "run", + "jumpXVelocity" : 12, + "jumpYVelocity" : 30, + "jumpXControlForce" : 50, + "minXRange" : 10, + "run" : true + } + } + ], + + "wanderActions" : [ + { + "name" : "wander-walk", + "cooldown" : 3.0, + "parameters" : { + "moveState" : "stroll", + "wanderTime" : [5, 20] + } + }, + { + "name" : "wander-walk", + "cooldown" : 6.0, + "parameters" : { + "moveState" : "walk", + "wanderTime" : [5, 5] + } + } + ] + }, + + "touchDamage" : { + "poly" : [ [0.8125, 1.25], [1.3125, 0.75], [1.3125, -1.05], [0.8125, -1.55], [-0.8125, -1.55], [-1.3125, -1.05], [-1.3125, 0.75], [-0.8125, 1.25] ], + "damage" : 14, + + "teamType" : "enemy", + "damageSourceKind" : "shadow", + "knockback" : 20, + "statusEffects" : [ ] + }, + + "metaBoundBox" : [-4, -4, 4, 4], + "scale" : 1.2, + + "movementSettings" : { + "collisionPoly" : [ [0.8125, 1.25], [1.3125, 0.75], [1.3125, 0.10], [0.8125, -0.40], [-0.8125, -0.40], [-1.3125, 0.10], [-1.3125, 0.75], [-0.8125, 1.25] ], + + "mass" : 1.0, + "walkSpeed" : 3, + "runSpeed" : 11, + + "airFriction" : 0, + + "airJumpProfile" : { + "jumpSpeed" : 65.0, + "jumpInitialPercentage" : 1.0, + "jumpHoldTime" : 0.2 + } + }, + + "bodyMaterialKind" : "organic", + + "knockoutTime" : 0.3, + "knockoutAnimationStates" : { + "damage" : "stunned" + }, + "deathParticles" : "deathPoof", + "knockoutEffect" : "", + + "statusSettings" : { + "statusProperties" : { + "targetMaterialKind" : "organic" + }, + + "appliesEnvironmentStatusEffects" : false, + "appliesWeatherStatusEffects" : true, + "minimumLiquidStatusEffectPercentage" : 0.1, + + "primaryScriptSources" : [ + "/stats/monster_primary.lua" + ], + "primaryScriptDelta" : 5, + + "stats" : { + "knockbackStunTime" : { + "baseValue" : 0.25 + }, + "knockbackThreshold" : { + "baseValue" : 9 + }, + "maxHealth" : { + "baseValue" : 90 + }, + "protection" : { + "baseValue" : 15 + }, + "healthRegen" : { + "baseValue" : 0.0 + }, + "powerMultiplier" : { + "baseValue" : 1.0 + }, + "poisonStatusImmunity" : { + "baseValue" : 1 + }, + "insanityImmunity" : { + "baseValue" : 1 + }, + "wetImmunity" : { + "baseValue" : 1 + } + }, + + "resources" : { + "stunned" : { + "deltaValue" : -1.0, + "initialValue" : 0.0 + }, + "health" : { + "maxStat" : "maxHealth", + "deltaStat" : "healthRegen", + "defaultPercentage" : 100 + } + } + }, + + "mouthOffset" : [0, 0], + "feetOffset" : [0, -8], + "capturable" : true, + "captureHealthFraction" : 0.5, + "nametagColor" : [64, 200, 255]//, + //"captureCollectables" : { "fu_monster" : "shadowtop" } + } } diff --git a/stats/monstereffects/monsterstatus_camouflage100.lua b/stats/monstereffects/monsterstatus_camouflage100.lua deleted file mode 100644 index 66fdb2df1e8..00000000000 --- a/stats/monstereffects/monsterstatus_camouflage100.lua +++ /dev/null @@ -1,26 +0,0 @@ -local fu_monsters_init = init -local fu_monsters_update = update -local fu_monsters_uninit = uninit - -function init() - if fu_monsters_init then - fu_monsters_init() - end - status.addEphemeralEffect("camouflage100",math.huge) -end - - - -function update(dt) - if fu_monsters_update then - fu_monsters_update(dt) - end -end - - - -function uninit() - if fu_monsters_uninit then - fu_monsters_uninit() - end -end \ No newline at end of file diff --git a/stats/monstereffects/monsterstatus_camouflage85.lua b/stats/monstereffects/monsterstatus_camouflage85.lua deleted file mode 100644 index 5409ffe96db..00000000000 --- a/stats/monstereffects/monsterstatus_camouflage85.lua +++ /dev/null @@ -1,25 +0,0 @@ -local fu_monsters_init = init -local fu_monsters_update = update -local fu_monsters_uninit = uninit - -function init() - if fu_monsters_init then - fu_monsters_init() - end - status.addEphemeralEffect("camouflage85",math.huge) -end - - -function update(dt) - if fu_monsters_update then - fu_monsters_update(dt) - end -end - - - -function uninit() - if fu_monsters_uninit then - fu_monsters_uninit() - end -end diff --git a/stats/monstereffects/monsterstatus_camouflage99.lua b/stats/monstereffects/monsterstatus_camouflage99.lua deleted file mode 100644 index 58fa031a0e0..00000000000 --- a/stats/monstereffects/monsterstatus_camouflage99.lua +++ /dev/null @@ -1,26 +0,0 @@ -local fu_monsters_init = init -local fu_monsters_update = update -local fu_monsters_uninit = uninit - -function init() - if fu_monsters_init then - fu_monsters_init() - end - status.addEphemeralEffect("camouflage99",math.huge) -end - - - -function update(dt) - if fu_monsters_update then - fu_monsters_update(dt) - end -end - - - -function uninit() - if fu_monsters_uninit then - fu_monsters_uninit() - end -end \ No newline at end of file diff --git a/stats/monstereffects/monsterstatus_camouflage99.statuseffect b/stats/monstereffects/monsterstatus_camouflage99.statuseffect index c0b8391232f..846fa16c045 100644 --- a/stats/monstereffects/monsterstatus_camouflage99.statuseffect +++ b/stats/monstereffects/monsterstatus_camouflage99.statuseffect @@ -1,12 +1,10 @@ { "name" : "monsterstatus_camouflage99", - "effectConfig" : { - - }, - "defaultDuration" : 666, + "effectConfig" : {"effectToApply":"camouflage100"}, + "defaultDuration" : 30, "scripts" : [ - "monsterstatus_camouflage99.lua" + "monsterstatus_camouflage_unified.lua" ], "scriptDelta" : 10 } diff --git a/stats/monstereffects/monsterstatus_camouflage55.lua b/stats/monstereffects/monsterstatus_camouflage_unified.lua similarity index 60% rename from stats/monstereffects/monsterstatus_camouflage55.lua rename to stats/monstereffects/monsterstatus_camouflage_unified.lua index f4052c8e0bd..11fd7d9eb70 100644 --- a/stats/monstereffects/monsterstatus_camouflage55.lua +++ b/stats/monstereffects/monsterstatus_camouflage_unified.lua @@ -2,11 +2,14 @@ local fu_monsters_init = init local fu_monsters_update = update local fu_monsters_uninit = uninit +local camoEffectToApply + function init() if fu_monsters_init then fu_monsters_init() end - status.addEphemeralEffect("camouflage55",math.huge) + camoEffectToApply=config.getParameter("camoEffectToApply") or "camouflage100" + status.addEphemeralEffect(camoEffectToApply,script.updateDt()*3) end @@ -15,6 +18,7 @@ function update(dt) if fu_monsters_update then fu_monsters_update(dt) end + status.addEphemeralEffect(camoEffectToApply,dt*3) end