mirror of
https://github.com/KabKebab/GS13.git
synced 2026-08-23 21:16:16 +01:00
Merge branch 'master' of https://github.com/quotefox/Hyper-Station-13
This commit is contained in:
@@ -80,6 +80,7 @@
|
||||
#define ADMIN_PUNISHMENT_NUGGET "Nugget"
|
||||
#define ADMIN_PUNISHMENT_BREADIFY ":b:read"
|
||||
#define ADMIN_PUNISHMENT_BOOKIFY "Bookify"
|
||||
#define ADMIN_PUNISHMENT_BONK "Bonk"
|
||||
|
||||
#define AHELP_ACTIVE 1
|
||||
#define AHELP_CLOSED 2
|
||||
|
||||
@@ -1274,7 +1274,8 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
|
||||
ADMIN_PUNISHMENT_FAKEBWOINK,
|
||||
ADMIN_PUNISHMENT_NUGGET,
|
||||
ADMIN_PUNISHMENT_BREADIFY,
|
||||
ADMIN_PUNISHMENT_BOOKIFY)
|
||||
ADMIN_PUNISHMENT_BOOKIFY,
|
||||
ADMIN_PUNISHMENT_BONK)
|
||||
|
||||
var/punishment = input("Choose a punishment", "DIVINE SMITING") as null|anything in punishment_list
|
||||
|
||||
@@ -1393,6 +1394,10 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/bookify, target), BOOKIFY_TIME)
|
||||
playsound(target, 'hyperstation/sound/misc/bookify.ogg', 60, 1)
|
||||
#undef BOOKIFY_TIME
|
||||
if(ADMIN_PUNISHMENT_BONK)
|
||||
playsound(target, 'hyperstation/sound/misc/bonk.ogg', 100, 1)
|
||||
target.AddElement(/datum/element/squish, 60 SECONDS)
|
||||
to_chat(target, "<span class='warning big'>Bonk.</span>")
|
||||
|
||||
punish_log(target, punishment)
|
||||
|
||||
|
||||
@@ -243,6 +243,48 @@
|
||||
/mob/living/simple_animal/hostile/hs13mimic/proc/allowed(atom/movable/A)
|
||||
return !is_type_in_typecache(A, mimic_blacklisted_transform_items) && (isitem(A) || isanimal(A))
|
||||
|
||||
//One leader mimic spawns per mimic event spawn, they are able to consume and transform themselves into the station's dead pets. Buckle up.
|
||||
/mob/living/simple_animal/hostile/hs13mimic/leader
|
||||
var/mob/living/consumptionTarget = null
|
||||
var/consuming = FALSE
|
||||
health = 38 //They have a teeeny tiny more health.
|
||||
maxHealth = 38
|
||||
|
||||
/mob/living/simple_animal/hostile/hs13mimic/leader/Life()
|
||||
. = ..()
|
||||
if(!consuming)
|
||||
if(!consumptionTarget)
|
||||
for(var/mob/living/simple_animal/pet/A in oview(5, src))
|
||||
if(A.stat == DEAD)
|
||||
consumptionTarget = A
|
||||
break
|
||||
if(!target && consumptionTarget) //Don't try to consume anything if we're currently attacking something.
|
||||
var/target_distance = get_dist(targets_from, consumptionTarget)
|
||||
if(target_distance > minimum_distance)
|
||||
Goto(consumptionTarget,move_to_delay,minimum_distance)
|
||||
else
|
||||
tryConsume(consumptionTarget)
|
||||
|
||||
/mob/living/simple_animal/hostile/hs13mimic/leader/proc/tryConsume(var/mob/living/simple_animal/pet/A)
|
||||
src.visible_message("<span class='warning'>[A] is being consumed...</span>",
|
||||
"<span class='notice'>You start to consume the dead [A]...</span>", "You hear strange fleshy sounds.")
|
||||
consuming = TRUE
|
||||
if(do_after(src, 100, target = A))
|
||||
stealthed = TRUE
|
||||
speed = 5
|
||||
wander = TRUE
|
||||
name = A.name
|
||||
desc = A.desc
|
||||
icon = A.icon
|
||||
icon_state = A.icon_living
|
||||
desc += "<span class='warning'> But something about it seems wrong...</span>"
|
||||
qdel(A)
|
||||
consuming = FALSE
|
||||
consumptionTarget = FALSE
|
||||
return TRUE
|
||||
consuming = FALSE
|
||||
return FALSE
|
||||
|
||||
//Player control code
|
||||
|
||||
/mob/living/simple_animal/hostile/hs13mimic/ShiftClickOn(atom/movable/A)
|
||||
@@ -298,6 +340,7 @@
|
||||
/area/asteroid/nearstation,
|
||||
/area/science/server,
|
||||
/area/science/explab,
|
||||
/area/science/xenobiology,
|
||||
/area/security/processing)
|
||||
var/spawncount = 1
|
||||
fakeable = FALSE
|
||||
@@ -360,8 +403,12 @@
|
||||
|
||||
notify_ghosts("A group of mimics has spawned in [pickedArea]!", source=pickedArea, action=NOTIFY_ATTACK, flashwindow = FALSE)
|
||||
while(spawncount > 0 && validTurfs.len)
|
||||
var/turf/pickedTurf = pick_n_take(validTurfs)
|
||||
var/spawn_type = /mob/living/simple_animal/hostile/hs13mimic
|
||||
spawn_atom_to_turf(spawn_type, pickedTurf, 1, FALSE)
|
||||
spawncount--
|
||||
var/turf/pickedTurf = pick_n_take(validTurfs)
|
||||
if(spawncount != 0)
|
||||
var/spawn_type = /mob/living/simple_animal/hostile/hs13mimic
|
||||
spawn_atom_to_turf(spawn_type, pickedTurf, 1, FALSE)
|
||||
else
|
||||
var/spawn_type = /mob/living/simple_animal/hostile/hs13mimic/leader
|
||||
spawn_atom_to_turf(spawn_type, pickedTurf, 1, FALSE)
|
||||
return SUCCESSFUL_SPAWN
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 8.1 KiB |
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 410 KiB |
Reference in New Issue
Block a user