mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 19:47:22 +01:00
Naughty List Revenge
Santa has refused to deliver presents to the NSS Cyberiad for an unknown reason. Meanwhile, a distress beacon is received from the North Pole, on an unencrypted Syndicate frequency. Apparently, Christmas Eve was anything but a silent night. A rogue operative seems to have infiltrated the North Pole and attempted to coerce Santa into removing him from the Naughty List, but his plans may have backfired. Santa has finally snapped, and must be put down in order for the crew to receive their gifts this year. The gateway has been reconfigured to lock onto the general location of the distress signal, and will not lock on to any other destinations until after Christmas has passed. Be warned, however, that the frozen north is far from hospitable, and a variety of dangers await you beyond the safety of the blast doors. This mission will offer some new challenges, and is designed to be undertaken by a squad of players. Will your team be able to put Father Christmas to rest and rescue the presents, or will you meet your demise in the freezing tundra?
This commit is contained in:
@@ -35,7 +35,7 @@
|
||||
max_n2 = 0
|
||||
minbodytemp = 0
|
||||
|
||||
faction = list("hostile")
|
||||
faction = list("hostile", "winter")
|
||||
|
||||
/mob/living/simple_animal/hostile/tree/FindTarget()
|
||||
. = ..()
|
||||
|
||||
@@ -0,0 +1,147 @@
|
||||
//////////////////////////
|
||||
// Winter Mobs //
|
||||
//////////////////////////
|
||||
|
||||
/mob/living/simple_animal/hostile/winter
|
||||
faction = list("hostile", "syndicate", "winter")
|
||||
speak_chance = 0
|
||||
turns_per_move = 5
|
||||
speed = 1
|
||||
maxHealth = 50
|
||||
health = 50
|
||||
icon = 'icons/mob/winter_mob.dmi'
|
||||
icon_state = "placeholder"
|
||||
icon_living = "placeholder"
|
||||
icon_dead = "placeholder"
|
||||
|
||||
min_oxy = 0
|
||||
max_oxy = 0
|
||||
min_tox = 0
|
||||
max_tox = 0
|
||||
min_co2 = 0
|
||||
max_co2 = 0
|
||||
min_n2 = 0
|
||||
max_n2 = 0
|
||||
minbodytemp = 0
|
||||
|
||||
melee_damage_lower = 3
|
||||
melee_damage_upper = 7
|
||||
|
||||
var/weapon1
|
||||
|
||||
/mob/living/simple_animal/hostile/winter/snowman
|
||||
name = "snowman"
|
||||
desc = "A very angry snowman. Doesn't look like it wants to play around..."
|
||||
icon_state = "snowman"
|
||||
icon_living = "snowman"
|
||||
icon_dead = "snowman-dead"
|
||||
weapon1 = /obj/item/weapon/melee/candy_sword
|
||||
|
||||
bodytemperature = 73.0 //it's made of snow and hatred, so it's pretty cold.
|
||||
maxbodytemp = 280.15 //at roughly 7 C, these will start melting (dying) from the warmth. Mind over matter or something.
|
||||
heat_damage_per_tick = 10 //Now With Rapid Thawing Action!
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/winter/snowman/death()
|
||||
if(prob(20)) //chance to become a stationary snowman structure instead of a corpse
|
||||
new /obj/structure/snowman(get_turf(src))
|
||||
visible_message("<span class='notice'>The [src.name] shimmers as its animating magic fades away!</span>")
|
||||
..() //this is just to make sure it gets properly killed before we qdel it
|
||||
qdel(src)
|
||||
else
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/hostile/winter/snowman/ranged
|
||||
ranged = 1
|
||||
retreat_distance = 5
|
||||
minimum_distance = 5
|
||||
projectiletype = /obj/item/projectile/snowball
|
||||
weapon1 = null
|
||||
|
||||
/mob/living/simple_animal/hostile/winter/reindeer
|
||||
name = "reindeer"
|
||||
desc = "Apparently murder is a reindeer game."
|
||||
icon_state = "reindeer"
|
||||
icon_living = "reindeer"
|
||||
icon_dead = "reindeer-dead"
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
meat_amount = 3
|
||||
|
||||
melee_damage_lower = 5
|
||||
melee_damage_upper = 10
|
||||
|
||||
/mob/living/simple_animal/hostile/winter/santa
|
||||
maxHealth = 150 //if this seems low for a "boss", it's because you have to fight him multiple times, with him fully healing between stages
|
||||
health = 150
|
||||
var/next_stage = null
|
||||
name = "Santa Claus"
|
||||
|
||||
icon_state = "santa"
|
||||
icon_living = "santa"
|
||||
icon_dead = "santa-dead"
|
||||
|
||||
/mob/living/simple_animal/hostile/winter/santa/stage_1 //stage 1: slow melee
|
||||
desc = "GET THE FAT MAN!"
|
||||
next_stage = /mob/living/simple_animal/hostile/winter/santa/stage_2
|
||||
speed = 2
|
||||
melee_damage_lower = 5
|
||||
melee_damage_upper = 15
|
||||
|
||||
/mob/living/simple_animal/hostile/winter/santa/stage_1/death()
|
||||
..()
|
||||
visible_message("<span class='danger'>HO HO HO! YOU THOUGHT IT WOULD BE THIS EASY?!?</span>")
|
||||
spawn(5)
|
||||
new next_stage(get_turf(src))
|
||||
qdel(src) //hide the body
|
||||
|
||||
/mob/living/simple_animal/hostile/winter/santa/stage_2 //stage 2: slow ranged
|
||||
desc = "GET THE FAT MAN AGAIN!"
|
||||
next_stage = /mob/living/simple_animal/hostile/winter/santa/stage_3
|
||||
ranged = 1
|
||||
projectiletype = /obj/item/projectile/ornament
|
||||
retreat_distance = 5
|
||||
minimum_distance = 5
|
||||
|
||||
/mob/living/simple_animal/hostile/winter/santa/stage_2/death()
|
||||
..()
|
||||
visible_message("<span class='danger'>YOU'VE BEEN VERY NAUGHTY! PREPARE TO DIE!</span>")
|
||||
spawn(5)
|
||||
new next_stage(get_turf(src))
|
||||
qdel(src) //hide the body
|
||||
|
||||
/mob/living/simple_animal/hostile/winter/santa/stage_3 //stage 3: fast rapidfire ranged
|
||||
desc = "WHY WON'T HE DIE ALREADY!?"
|
||||
next_stage = /mob/living/simple_animal/hostile/winter/santa/stage_4
|
||||
ranged = 1
|
||||
rapid = 1
|
||||
speed = 0 //he's lost some weight from the fighting
|
||||
projectiletype = /obj/item/projectile/ornament
|
||||
retreat_distance = 3
|
||||
minimum_distance = 3
|
||||
|
||||
/mob/living/simple_animal/hostile/winter/santa/stage_3/death()
|
||||
..()
|
||||
visible_message("<span class='danger'>FACE MY FINAL FORM AND KNOW DESPAIR!</span>")
|
||||
spawn(5)
|
||||
new next_stage(get_turf(src))
|
||||
qdel(src) //hide the body
|
||||
|
||||
/mob/living/simple_animal/hostile/winter/santa/stage_4 //stage 4: fast spinebreaker
|
||||
name = "Final Form Santa"
|
||||
desc = "WHAT THE HELL IS HE!?! WHY WON'T HE STAY DEAD!?!"
|
||||
ranged = 0
|
||||
rapid = 0
|
||||
speed = 0 //he's lost some weight from the fighting
|
||||
|
||||
environment_smash = 2 //naughty walls must be punished too
|
||||
melee_damage_lower = 10
|
||||
melee_damage_upper = 25 //that's gonna leave a mark, for sure
|
||||
|
||||
/mob/living/simple_animal/hostile/winter/santa/stage_4/death()
|
||||
world << "<span class='notice'>THE FAT MAN HAS FALLEN!</span>"
|
||||
world << "<span class='notice'>SANTA CLAUS HAS BEEN DEFEATED!</span>"
|
||||
..()
|
||||
var/obj/item/weapon/grenade/clusterbuster/xmas/X = new /obj/item/weapon/grenade/clusterbuster/xmas(get_turf(src))
|
||||
var/obj/item/weapon/grenade/clusterbuster/xmas/Y = new /obj/item/weapon/grenade/clusterbuster/xmas(get_turf(src))
|
||||
X.prime()
|
||||
Y.prime()
|
||||
@@ -224,9 +224,9 @@
|
||||
|
||||
/mob/living/simple_animal/proc/handle_temperature_damage()
|
||||
if(bodytemperature < minbodytemp)
|
||||
adjustBruteLoss(2)
|
||||
adjustBruteLoss(cold_damage_per_tick)
|
||||
else if(bodytemperature > maxbodytemp)
|
||||
adjustBruteLoss(3)
|
||||
adjustBruteLoss(heat_damage_per_tick)
|
||||
|
||||
/mob/living/simple_animal/Bumped(AM as mob|obj)
|
||||
if(!AM) return
|
||||
|
||||
Reference in New Issue
Block a user