diff --git a/code/defines/mob/living/carbon/alien.dm b/code/defines/mob/living/carbon/alien.dm index 7ed371f5d9..60b38a20c0 100644 --- a/code/defines/mob/living/carbon/alien.dm +++ b/code/defines/mob/living/carbon/alien.dm @@ -13,4 +13,9 @@ alien_talk_understand = 1 var/obj/item/weapon/card/id/wear_id = null // Fix for station bounced radios -- Skie - var/has_fine_manipulation = 0 \ No newline at end of file + var/has_fine_manipulation = 0 + + var/move_delay_add = 0 // movement delay to add + + canstun = 0 + canweaken = 0 // aliens cannot be stunned or knocked down. Massive buff! \ No newline at end of file diff --git a/code/defines/mob/living/carbon/metroid.dm b/code/defines/mob/living/carbon/metroid.dm index c60d26fc74..48fd4fea5c 100644 --- a/code/defines/mob/living/carbon/metroid.dm +++ b/code/defines/mob/living/carbon/metroid.dm @@ -19,6 +19,11 @@ see_in_dark = 8 + // canstun and canweaken don't affect metroids because they ignore stun and weakened variables + // for the sake of cleanliness, though, here they are. + canstun = 0 + canweaken = 0 + var/amount_grown = 0// controls how long the metroid has been overfed, if 10, grows into an adult // if adult: if 10: reproduces var/powerlevel = 0 // 1-10 controls how much electricity they are generating diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm index 5f7185d72b..b8d02b4d7e 100644 --- a/code/game/objects/items/weapons/swords_axes_etc.dm +++ b/code/game/objects/items/weapons/swords_axes_etc.dm @@ -158,7 +158,7 @@ STUN BATON R.cell.charge -= 20 else charges-- - if (M.stuttering < 1 && (!(M.mutations & HULK)) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/) + if (M.stuttering < 1 && (!(M.mutations & HULK) && M.canstun) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/) M.stuttering = 1 M.Stun(1) M.Weaken(1) @@ -169,7 +169,7 @@ STUN BATON R.cell.charge -= 20 else charges-- - if (M.stuttering < 10 && (!(M.mutations & HULK)) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/) + if (M.stuttering < 10 && (!(M.mutations & HULK) && M.canstun) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/) M.stuttering = 10 M.Stun(10) M.Weaken(10) diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm index cb94c28359..b5b1fe828d 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -86,6 +86,9 @@ if(src.resting) Weaken(5) + if(move_delay_add > 0) + move_delay_add = max(0, move_delay_add - rand(1, 2)) + if(health < config.health_threshold_dead || src.brain_op_stage == 4.0) death() else if(src.health < config.health_threshold_crit) diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm index e5aac55ed0..f8bb760278 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm @@ -87,6 +87,9 @@ if(src.resting) Weaken(5) + if(move_delay_add > 0) + move_delay_add = max(0, move_delay_add - rand(1, 2)) + if(health < config.health_threshold_dead || src.brain_op_stage == 4.0) death() else if(src.health < config.health_threshold_crit) diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 31350b9894..12d3f8cc14 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -58,7 +58,9 @@ tally += 2 if (istype(src, /mob/living/carbon/alien/humanoid/sentinel)) tally += 1 - return tally + if (istype(src, /mob/living/carbon/alien/humanoid/hunter)) + tally = -1 // hunters go supersuperfast + return tally + move_delay_add //This needs to be fixed /mob/living/carbon/alien/humanoid/Stat() diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm index 5dd33441b7..a93994964b 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/life.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm @@ -406,6 +406,9 @@ if(src.resting) Weaken(5) + if(move_delay_add > 0) + move_delay_add = max(0, move_delay_add - rand(1, 2)) + if(health < config.health_threshold_dead || src.brain_op_stage == 4.0) death() else if(src.health < config.health_threshold_crit) diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm index 71b0d5b3d1..94afb44071 100644 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ b/code/modules/mob/living/carbon/alien/larva/life.dm @@ -331,6 +331,9 @@ if(resting) Weaken(5) + if(move_delay_add > 0) + move_delay_add = max(0, move_delay_add - rand(1, 2)) + if(health < config.health_threshold_dead || brain_op_stage == 4.0) death() else if(health < config.health_threshold_crit) diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index ce8176d1c3..6d3ec332d7 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -50,7 +50,8 @@ if(IRRADIATE) radiation += min((effect - (effect*getarmor(null, "rad"))), 0)//Rads auto check armor if(STUTTER) - stuttering = max(stuttering,(effect/(blocked+1))) + if(canstun) // stun is usually associated with stutter + stuttering = max(stuttering,(effect/(blocked+1))) if(EYE_BLUR) eye_blurry = max(eye_blurry,(effect/(blocked+1))) if(DROWSY) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 01db4cd92f..db475dd544 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1040,27 +1040,38 @@ note dizziness decrements automatically in the mob's Life() proc. return 0 /mob/proc/Stun(amount) - stunned = max(max(stunned,amount),0) //can't go below 0, getting a low amount of stun doesn't lower your current stun + if(canstun) + stunned = max(max(stunned,amount),0) //can't go below 0, getting a low amount of stun doesn't lower your current stun + else + if(istype(src, /mob/living/carbon/alien)) // add some movement delay + var/mob/living/carbon/alien/Alien = src + Alien.move_delay_add = min(Alien.move_delay_add + round(amount / 5), 10) // a maximum delay of 10 + return /mob/proc/SetStunned(amount) //if you REALLY need to set stun to a set amount without the whole "can't go below current stunned" - stunned = max(amount,0) + if(canstun) + stunned = max(amount,0) return /mob/proc/AdjustStunned(amount) - stunned = max(stunned + amount,0) + if(canstun) + stunned = max(stunned + amount,0) return /mob/proc/Weaken(amount) - weakened = max(max(weakened,amount),0) + if(canweaken) + weakened = max(max(weakened,amount),0) return /mob/proc/SetWeakened(amount) - weakened = max(amount,0) + if(canweaken) + weakened = max(amount,0) return /mob/proc/AdjustWeakened(amount) - weakened = max(weakened + amount,0) + if(canweaken) + weakened = max(weakened + amount,0) return /mob/proc/Paralyse(amount) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 7660af4703..fddbec0aeb 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -28,8 +28,6 @@ //Vars that should only be accessed via procs ++END - - // var/uses_hud = 0 var/obj/screen/flash = null var/obj/screen/blind = null @@ -249,3 +247,6 @@ the mob is also allowed to move without any sort of restriction. For instance, i var/UI = 'screen1_old.dmi' // For changing the UI from preferences // var/obj/effect/organstructure/organStructure = null //for dem organs + + var/canstun = 1 // determines if this mob can be stunned by things + var/canweaken = 1 // determines if this mob can be weakened/knocked down by things \ No newline at end of file diff --git a/html/changelog.html b/html/changelog.html index 791e30699e..deb7614e6b 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -60,6 +60,13 @@ Stuff which is in development and not yet visible to players or just code relate (ie. code improvements for expandability, etc.) should not be listed here. They should be listed in the changelog upon commit tho. Thanks. --> +1 January 2012 (12 more months until doomsday) + 29 December 2011
    diff --git a/icons/mob/critter.dmi b/icons/mob/critter.dmi index 3ec19ac3cd..4d728bc847 100644 Binary files a/icons/mob/critter.dmi and b/icons/mob/critter.dmi differ diff --git a/icons/obj/lighting.dmi b/icons/obj/lighting.dmi index e65494ba7c..9dbb5096f4 100644 Binary files a/icons/obj/lighting.dmi and b/icons/obj/lighting.dmi differ