Merge pull request #13909 from silicons/twitch_plays

Twitch Plays: Clown Car
This commit is contained in:
DeltaFire
2021-01-01 04:14:26 +01:00
committed by Archie
parent 8c60d61428
commit 2b79e974eb
9 changed files with 3448 additions and 3303 deletions

View File

@@ -107,6 +107,7 @@ GLOBAL_LIST_INIT(admin_verbs_fun, list(
/client/proc/smite,
/client/proc/spawn_floor_cluwne, // Yogs
/client/proc/spawn_random_floor_cluwne,
/client/proc/spawn_twitch_plays_clowncar,
/client/proc/admin_away,
/client/proc/roll_dices //CIT CHANGE - Adds dice verb
))

View File

@@ -1,33 +0,0 @@
/client/proc/spawn_floor_cluwne()
set category = "Fun"
set name = "Unleash Targeted Floor Cluwne"
set desc = "Pick a specific target. Be warned: spawning more than one may cause issues!"
var/target
if(!check_rights(R_FUN))
return
target = input("Any specific target in mind? Please note only live, non cluwned, human targets are valid.", "Target", target) as null|anything in GLOB.player_list
if(target && ishuman(target))
var/mob/living/carbon/human/H = target
var/mob/living/simple_animal/hostile/floor_cluwne/FC = new /mob/living/simple_animal/hostile/floor_cluwne(H.loc)
FC.forced = TRUE
FC.Acquire_Victim(H)
FC.target = H
FC.current_victim = H
log_admin("[key_name(usr)] spawned floor cluwne.")
message_admins("[key_name(usr)] spawned floor cluwne.")
deadchat_broadcast("<span class='deadsay'><b>Floor Cluwne</b> has just been spawned!</span>")
/client/proc/spawn_random_floor_cluwne()
set category = "Fun"
set name = "Unleash Random Floor Cluwne"
set desc = "Goes after a random player in your Z level. Be warned: spawning more than one may cause issues!"
if(!check_rights(R_FUN))
return
var/turf/T = get_turf(usr)
new /mob/living/simple_animal/hostile/floor_cluwne(T)
log_admin("[key_name(usr)] spawned a random target floor cluwne.")
message_admins("[key_name(usr)] spawned a random target floor cluwne.")

View File

@@ -325,6 +325,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
ghostize(0, penalize = TRUE)
/mob/dead/observer/Move(NewLoc, direct, glide_size_override = 32)
if(SEND_SIGNAL(src, COMSIG_MOVABLE_PRE_MOVE, NewLoc) & COMPONENT_MOVABLE_BLOCK_PRE_MOVE)
return
if(updatedir)
setDir(direct)//only update dir if we actually need it, so overlays won't spin on base sprites that don't have directions of their own
var/oldloc = loc

View File

@@ -127,4 +127,25 @@
icon_state = initial(icon_state)
/obj/vehicle/sealed/car/clowncar/proc/StopDroppingOil()
droppingoil = FALSE
droppingoil = FALSE
/obj/vehicle/sealed/car/clowncar/twitch_plays
key_type = null
/obj/vehicle/sealed/car/clowncar/twitch_plays/Initialize()
. = ..()
AddComponent(/datum/component/twitch_plays/simple_movement)
START_PROCESSING(SSfastprocess, src)
GLOB.poi_list |= src
notify_ghosts("Twitch Plays: Clown Car")
/obj/vehicle/sealed/car/clowncar/twitch_plays/Destroy()
STOP_PROCESSING(SSfastprocess, src)
GLOB.poi_list -= src
return ..()
/obj/vehicle/sealed/car/clowncar/twitch_plays/process()
var/dir = SEND_SIGNAL(src, COMSIG_TWITCH_PLAYS_MOVEMENT_DATA, TRUE)
if(!dir)
return
driver_move(null, dir)