mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
@@ -1867,7 +1867,7 @@
|
||||
icon_state = "tube1";
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/computer/syndicate_depot/teleporter/targeted,
|
||||
/obj/machinery/computer/syndicate_depot/teleporter,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
|
||||
+442
-372
File diff suppressed because it is too large
Load Diff
@@ -32,6 +32,7 @@
|
||||
var/detected_pod = FALSE
|
||||
var/detected_double_agent = FALSE
|
||||
var/mine_trigger_count = 0
|
||||
var/perimeter_shield_status = FALSE
|
||||
var/obj/machinery/computer/syndicate_depot/syndiecomms/comms_computer = null
|
||||
var/obj/structure/fusionreactor/reactor
|
||||
|
||||
@@ -114,9 +115,13 @@
|
||||
updateicon()
|
||||
|
||||
/area/syndicate_depot/core/proc/locker_looted()
|
||||
something_looted = TRUE
|
||||
if(on_peaceful)
|
||||
increase_alert("Thieves!")
|
||||
if(!something_looted)
|
||||
something_looted = TRUE
|
||||
if(on_peaceful)
|
||||
increase_alert("Thieves!")
|
||||
if(perimeter_shield_status)
|
||||
increase_alert("Perimeter shield breach!")
|
||||
|
||||
|
||||
/area/syndicate_depot/core/proc/armory_locker_looted()
|
||||
if(!run_finished && !used_self_destruct)
|
||||
@@ -146,7 +151,8 @@
|
||||
if(detected_pod)
|
||||
return
|
||||
detected_pod = TRUE
|
||||
increase_alert("Hostile spacepod detected: [P]")
|
||||
if(!called_backup)
|
||||
increase_alert("Hostile spacepod detected: [P]")
|
||||
|
||||
/area/syndicate_depot/core/proc/saw_double_agent(mob/living/M)
|
||||
if(detected_double_agent)
|
||||
@@ -170,9 +176,6 @@
|
||||
L.locked = !L.locked
|
||||
L.req_access = list(access_syndicate_leader)
|
||||
L.update_icon()
|
||||
for(var/obj/machinery/computer/syndicate_depot/teleporter/P in src)
|
||||
if(!P.portal_enabled)
|
||||
P.toggle_portal()
|
||||
else
|
||||
log_game("Depot visit: ended")
|
||||
alert_log += "Visitor mode ended."
|
||||
@@ -317,7 +320,7 @@
|
||||
A.update_icon()
|
||||
|
||||
/area/syndicate_depot/core/proc/toggle_falsewalls()
|
||||
for(var/obj/structure/falsewall/reinforced/F in src)
|
||||
for(var/obj/structure/falsewall/plastitanium/F in src)
|
||||
spawn(0)
|
||||
F.toggle()
|
||||
|
||||
|
||||
@@ -196,6 +196,7 @@
|
||||
if(istype(perimeterarea) && (GAMEMODE_IS_NUCLEAR || prob(20)))
|
||||
spawn(200)
|
||||
perimeterarea.perimeter_shields_up()
|
||||
depotarea.perimeter_shield_status = TRUE
|
||||
|
||||
/obj/machinery/computer/syndicate_depot/shieldcontrol/Destroy()
|
||||
if(istype(perimeterarea) && perimeterarea.shield_list.len)
|
||||
@@ -219,8 +220,10 @@
|
||||
return
|
||||
if(perimeterarea.shield_list.len)
|
||||
perimeterarea.perimeter_shields_down()
|
||||
depotarea.perimeter_shield_status = FALSE
|
||||
else
|
||||
perimeterarea.perimeter_shields_up()
|
||||
depotarea.perimeter_shield_status = TRUE
|
||||
playsound(user, sound_yes, 50, 0)
|
||||
|
||||
|
||||
@@ -282,17 +285,13 @@
|
||||
to_chat(user, "<span class='warning'>[src] has already been used to transmit a message to the Syndicate.</span>")
|
||||
return
|
||||
message_sent = TRUE
|
||||
if(user.mind && user.mind.special_role == SPECIAL_ROLE_TRAITOR)
|
||||
var/input = stripped_input(user, "Please choose a message to transmit to Syndicate HQ via quantum entanglement. Transmission does not guarantee a response. This function may only be used ONCE.", "To abort, send an empty message.", "")
|
||||
if(!input)
|
||||
message_sent = FALSE
|
||||
return
|
||||
Syndicate_announce(input, user)
|
||||
to_chat(user, "Message transmitted.")
|
||||
log_say("[key_name(user)] has sent a Syndicate comms message from the depot: [input]", user)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[src] requires authentication with syndicate codewords, which you do not know.</span>")
|
||||
raise_alert("Detected unauthorized access by [user] to [src]!")
|
||||
var/input = stripped_input(user, "Please choose a message to transmit to Syndicate HQ via quantum entanglement. Transmission does not guarantee a response. This function may only be used ONCE.", "To abort, send an empty message.", "")
|
||||
if(!input)
|
||||
message_sent = FALSE
|
||||
return
|
||||
Syndicate_announce(input, user)
|
||||
to_chat(user, "Message transmitted.")
|
||||
log_say("[key_name(user)] has sent a Syndicate comms message from the depot: [input]", user)
|
||||
updateUsrDialog()
|
||||
playsound(user, sound_yes, 50, 0)
|
||||
|
||||
@@ -318,7 +317,9 @@
|
||||
to_chat(user, "<span class='warning'>Only verified agents of the Syndicate may sign in as visitors. Everyone else will be shot on sight.</span>")
|
||||
else if(subcommand == DEPOT_VISITOR_START)
|
||||
if(depotarea.something_looted)
|
||||
to_chat(user, "<span class='warning'>Visitor sign-in is not possible after supplies have been taken from the depot.</span>")
|
||||
to_chat(user, "<span class='warning'>Visitor sign-in is not possible after supplies have been taken from a locker in the depot.</span>")
|
||||
else if("syndicate" in user.faction)
|
||||
to_chat(user, "<span class='warning'>You are already recognized as a member of the Syndicate, and do not need to sign in.</span>")
|
||||
else if(user.mind && user.mind.special_role == SPECIAL_ROLE_TRAITOR)
|
||||
grant_syndie_faction(user)
|
||||
depotarea.peaceful_mode(TRUE, TRUE)
|
||||
@@ -359,6 +360,7 @@
|
||||
icon_keyboard = "teleport_key"
|
||||
var/obj/machinery/bluespace_beacon/syndicate/mybeacon
|
||||
var/obj/effect/portal/redspace/myportal
|
||||
var/obj/effect/portal/redspace/myportal2
|
||||
var/portal_enabled = FALSE
|
||||
var/portaldir = WEST
|
||||
|
||||
@@ -394,18 +396,6 @@
|
||||
return FALSE
|
||||
|
||||
/obj/machinery/computer/syndicate_depot/teleporter/proc/choosetarget()
|
||||
var/list/eligible_turfs = list()
|
||||
for(var/obj/item/radio/beacon/R in GLOB.beacons)
|
||||
var/turf/T = get_turf(R)
|
||||
if(!is_station_level(T.z))
|
||||
continue
|
||||
eligible_turfs += T
|
||||
if(eligible_turfs.len)
|
||||
return pick(eligible_turfs)
|
||||
else
|
||||
return FALSE
|
||||
|
||||
/obj/machinery/computer/syndicate_depot/teleporter/targeted/choosetarget()
|
||||
var/list/L = list()
|
||||
var/list/areaindex = list()
|
||||
|
||||
@@ -434,9 +424,15 @@
|
||||
myportal = P
|
||||
var/area/A = get_area(tele_target)
|
||||
P.name = "[A] portal"
|
||||
var/obj/effect/portal/redspace/P2 = new(get_turf(tele_target), portal_turf, src, 0)
|
||||
myportal2 = P2
|
||||
P2.name = "mysterious portal"
|
||||
else if(!portal_enabled && myportal)
|
||||
qdel(myportal)
|
||||
myportal = null
|
||||
if(myportal2)
|
||||
qdel(myportal2)
|
||||
myportal2 = null
|
||||
|
||||
/obj/machinery/computer/syndicate_depot/teleporter/get_menu(mob/user)
|
||||
var/menutext = "<B>Syndicate Teleporter Control</B><HR>"
|
||||
|
||||
@@ -186,7 +186,7 @@
|
||||
name = "common loot"
|
||||
icon_state = "x3"
|
||||
spawn_inside = /obj/structure/closet/secure_closet/syndicate/depot
|
||||
// Loot schema: costumes, toys, useless gimmick items, trapped items
|
||||
// Loot schema: costumes, toys, useless gimmick items
|
||||
result = list(/datum/nothing = 13,
|
||||
/obj/item/storage/toolbox/syndicate = 1,
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_syndicate = 1,
|
||||
@@ -201,6 +201,16 @@
|
||||
/obj/item/coin/antagtoken/syndicate = 1,
|
||||
/obj/item/storage/box/syndie_kit/cutouts = 1)
|
||||
|
||||
/obj/effect/spawner/random_spawners/syndicate/loot/stetchkin
|
||||
name = "20pc stetchkin"
|
||||
icon_state = "x3"
|
||||
spawn_inside = null
|
||||
result = list(/datum/nothing = 1,
|
||||
/obj/item/wrench = 1,
|
||||
/obj/item/reagent_containers/food/snacks/syndicake = 1,
|
||||
/obj/item/coin/antagtoken/syndicate = 1,
|
||||
/obj/item/gun/projectile/automatic/pistol = 1)
|
||||
|
||||
/obj/effect/spawner/random_spawners/syndicate/loot/level2
|
||||
name = "rare loot"
|
||||
// Loot schema: space gear, basic armor, basic ammo (10mm, rcd), drugs, more dangerous/useful gimmick items, lower-value minerals
|
||||
@@ -291,18 +301,18 @@
|
||||
/obj/effect/spawner/random_spawners/syndicate/layout/door
|
||||
name = "50pc door 25pc falsewall 25pc wall"
|
||||
result = list(/obj/machinery/door/airlock/hatch/syndicate = 6,
|
||||
/turf/simulated/wall/r_wall = 2,
|
||||
/obj/structure/falsewall/reinforced = 2)
|
||||
/turf/simulated/wall/mineral/plastitanium/nodiagonal = 2,
|
||||
/obj/structure/falsewall/plastitanium = 2)
|
||||
|
||||
/obj/effect/spawner/random_spawners/syndicate/layout/door/secret
|
||||
name = "50pc falsewall 50pc wall"
|
||||
result = list(/turf/simulated/wall/r_wall = 1,
|
||||
/obj/structure/falsewall/reinforced = 1)
|
||||
result = list(/turf/simulated/wall/mineral/plastitanium/nodiagonal = 1,
|
||||
/obj/structure/falsewall/plastitanium = 1)
|
||||
|
||||
/obj/effect/spawner/random_spawners/syndicate/layout/door/vault
|
||||
name = "80pc vaultdoor 20pc wall"
|
||||
result = list(/obj/machinery/door/airlock/hatch/syndicate/vault = 4,
|
||||
/turf/simulated/wall/r_wall = 1)
|
||||
/turf/simulated/wall/mineral/plastitanium/nodiagonal = 1)
|
||||
|
||||
|
||||
/obj/effect/spawner/random_spawners/syndicate/layout/spacepod
|
||||
|
||||
@@ -326,7 +326,7 @@
|
||||
mineral = /obj/item/stack/sheet/mineral/plastitanium
|
||||
walltype = /turf/simulated/wall/mineral/plastitanium
|
||||
smooth = SMOOTH_MORE
|
||||
canSmoothWith = list(/turf/simulated/wall/mineral/plastitanium, /obj/machinery/door/airlock/shuttle, /obj/machinery/door/airlock, /obj/structure/window/full/shuttle, /obj/structure/shuttle/engine/heater)
|
||||
canSmoothWith = list(/turf/simulated/wall/mineral/plastitanium, /turf/simulated/wall/mineral/plastitanium/nodiagonal, /obj/machinery/door/airlock/shuttle, /obj/machinery/door/airlock, /obj/structure/window/full/shuttle, /obj/structure/shuttle/engine/heater)
|
||||
|
||||
/obj/structure/falsewall/brass
|
||||
name = "clockwork wall"
|
||||
@@ -346,4 +346,3 @@
|
||||
var/turf/T = get_turf(src)
|
||||
new /obj/effect/temp_visual/ratvar/wall/false(T)
|
||||
new /obj/effect/temp_visual/ratvar/beam/falsewall(T)
|
||||
|
||||
|
||||
@@ -217,7 +217,7 @@ Gunshots/explosions/opening doors/less rare audio (done)
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/hallucination/simple/clown
|
||||
image_icon = 'icons/mob/animal.dmi'
|
||||
image_icon = 'icons/mob/simple_human.dmi'
|
||||
image_state = "clown"
|
||||
|
||||
/obj/effect/hallucination/simple/clown/New(loc, mob/living/carbon/T, duration)
|
||||
|
||||
@@ -30,6 +30,8 @@
|
||||
icon_state = "ai-magma"
|
||||
|
||||
/mob/living/silicon/decoy/syndicate/depot
|
||||
universal_speak = TRUE
|
||||
universal_understand = TRUE
|
||||
var/raised_alert = FALSE
|
||||
|
||||
/mob/living/silicon/decoy/syndicate/depot/proc/raise_alert()
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
/mob/living/simple_animal/hostile/pirate
|
||||
name = "Pirate"
|
||||
desc = "Does what he wants cause a pirate is free."
|
||||
icon = 'icons/mob/simple_human.dmi'
|
||||
icon_state = "piratemelee"
|
||||
icon_living = "piratemelee"
|
||||
icon_dead = "piratemelee_dead"
|
||||
icon_dead = "piratemelee_dead" // Does not actually exist. del_on_death.
|
||||
speak_chance = 0
|
||||
turns_per_move = 5
|
||||
response_help = "pushes the"
|
||||
@@ -33,7 +34,7 @@
|
||||
name = "Pirate Gunner"
|
||||
icon_state = "pirateranged"
|
||||
icon_living = "pirateranged"
|
||||
icon_dead = "piratemelee_dead"
|
||||
icon_dead = "piratemelee_dead" // Does not actually exist. del_on_death.
|
||||
projectilesound = 'sound/weapons/laser.ogg'
|
||||
ranged = 1
|
||||
rapid = 2
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/mob/living/simple_animal/hostile/retaliate/clown
|
||||
name = "Clown"
|
||||
desc = "A denizen of clown planet"
|
||||
icon = 'icons/mob/simple_human.dmi'
|
||||
icon_state = "clown"
|
||||
icon_living = "clown"
|
||||
icon_dead = "clown_dead"
|
||||
@@ -32,6 +33,7 @@
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/clown/goblin
|
||||
icon = 'icons/mob/animal.dmi'
|
||||
name = "clown goblin"
|
||||
desc = "A tiny walking mask and clown shoes. You want to honk his nose!"
|
||||
icon_state = "clowngoblin"
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
/mob/living/simple_animal/hostile/russian
|
||||
name = "Russian"
|
||||
desc = "For the Motherland!"
|
||||
icon = 'icons/mob/simple_human.dmi'
|
||||
icon_state = "russianmelee"
|
||||
icon_living = "russianmelee"
|
||||
icon_dead = "russianmelee_dead"
|
||||
icon_gib = "syndicate_gib"
|
||||
icon_dead = "russianmelee_dead" // Does not actually exist. del_on_death.
|
||||
icon_gib = "russianmelee_gib" // Does not actually exist. del_on_death.
|
||||
speak_chance = 0
|
||||
turns_per_move = 5
|
||||
response_help = "pokes the"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/mob/living/simple_animal/hostile/skeleton
|
||||
name = "reanimated skeleton"
|
||||
desc = "A real bonefied skeleton, doesn't seem like it wants to socialize."
|
||||
icon = 'icons/mob/animal.dmi'
|
||||
icon = 'icons/mob/simple_human.dmi'
|
||||
icon_state = "skeleton"
|
||||
icon_living = "skeleton"
|
||||
turns_per_move = 5
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
/mob/living/simple_animal/hostile/syndicate
|
||||
name = "Syndicate Operative"
|
||||
desc = "Death to Nanotrasen."
|
||||
icon = 'icons/mob/simple_human.dmi'
|
||||
icon_state = "syndicate"
|
||||
icon_living = "syndicate"
|
||||
icon_dead = "syndicate_dead"
|
||||
icon_gib = "syndicate_gib"
|
||||
icon_dead = "syndicate_dead" // Does not actually exist. del_on_death.
|
||||
icon_gib = "syndicate_gib" // Does not actually exist. del_on_death.
|
||||
speak_chance = 0
|
||||
turns_per_move = 5
|
||||
response_help = "pokes the"
|
||||
@@ -32,14 +33,15 @@
|
||||
/mob/living/simple_animal/hostile/syndicate/melee
|
||||
melee_damage_lower = 20
|
||||
melee_damage_upper = 25
|
||||
icon_state = "syndicatemelee"
|
||||
icon_living = "syndicatemelee"
|
||||
icon_state = "syndicate_sword"
|
||||
icon_living = "syndicate_sword"
|
||||
attacktext = "slashes"
|
||||
attack_sound = 'sound/weapons/bladeslice.ogg'
|
||||
armour_penetration = 28
|
||||
status_flags = 0
|
||||
loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier, /obj/item/melee/energy/sword/saber/red, /obj/item/shield/energy)
|
||||
var/melee_block_chance = 20
|
||||
var/ranged_block_chance = 35
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/melee/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
@@ -63,12 +65,13 @@
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/melee/bullet_act(var/obj/item/projectile/Proj)
|
||||
if(!Proj) return
|
||||
if(prob(65))
|
||||
if(!Proj)
|
||||
return
|
||||
if(prob(ranged_block_chance))
|
||||
visible_message("<span class='danger'>[src] blocks [Proj] with its shield!</span>")
|
||||
else
|
||||
if((Proj.damage_type == BRUTE || Proj.damage_type == BURN))
|
||||
adjustHealth(Proj.damage)
|
||||
else
|
||||
visible_message("<span class='danger'>[src] blocks [Proj] with its shield!</span>")
|
||||
return 0
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/melee/autogib
|
||||
@@ -80,7 +83,10 @@
|
||||
robust_searching = 1 // Together with stat_attack, ensures dionae/etc that regen are killed properly
|
||||
stat_attack = UNCONSCIOUS
|
||||
universal_speak = 1
|
||||
melee_block_chance = 40
|
||||
icon_state = "syndicate_swordonly"
|
||||
icon_living = "syndicate_swordonly"
|
||||
melee_block_chance = 0
|
||||
ranged_block_chance = 0
|
||||
del_on_death = 1
|
||||
var/area/syndicate_depot/core/depotarea
|
||||
var/raised_alert = FALSE
|
||||
@@ -103,15 +109,21 @@
|
||||
depotarea = areaMaster
|
||||
spawn_turf = get_turf(src)
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/ListTargetsLazy()
|
||||
// The normal ListTargetsLazy ignores walls, which is very bad in the case of depot mobs. So we override it.
|
||||
return ListTargets()
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/Aggro()
|
||||
. = ..()
|
||||
if(target && istype(depotarea))
|
||||
if(!seen_enemy)
|
||||
seen_enemy = TRUE
|
||||
playsound(loc, 'sound/weapons/saberon.ogg', 35, 1)
|
||||
if(!ranged)
|
||||
playsound(loc, 'sound/weapons/saberon.ogg', 35, 1)
|
||||
if(alert_on_shield_breach)
|
||||
if(depotarea.shield_list.len)
|
||||
raise_alert("[name] reports that an intruder is trying to breach the armory shield!")
|
||||
raise_alert("[name] reports that [target] is trying to breach the armory shield!")
|
||||
alert_on_shield_breach = FALSE
|
||||
raised_alert = FALSE
|
||||
alert_on_death = TRUE
|
||||
@@ -134,9 +146,8 @@
|
||||
// This prevents someone from aggroing a depot mob, then hiding in a locker, perfectly safe, while the mob stands there getting killed by their friends.
|
||||
LoseTarget()
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/handle_automated_action()
|
||||
if(!..())
|
||||
return
|
||||
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/handle_automated_movement()
|
||||
. = ..()
|
||||
if(seen_enemy)
|
||||
aggro_cycles++
|
||||
if(alert_on_timeout && !raised_alert && aggro_cycles >= 60)
|
||||
@@ -198,22 +209,61 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/officer
|
||||
name = "Syndicate Officer"
|
||||
icon_state = "syndicate_sword"
|
||||
icon_living = "syndicate_sword"
|
||||
melee_block_chance = 20
|
||||
ranged_block_chance = 35
|
||||
alert_on_death = TRUE
|
||||
melee_block_chance = 60
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/officer/Initialize(mapload)
|
||||
. = ..()
|
||||
if(prob(50))
|
||||
// 50% chance of switching to ranged variant.
|
||||
// Designed to counter players taking cover behind reinforced plasmasglass.
|
||||
// Does almost no danage in melee, but decent damage at range, and its shots go through glass.
|
||||
melee_damage_lower = 10
|
||||
melee_damage_upper = 10
|
||||
attacktext = "punches"
|
||||
attack_sound = 'sound/weapons/punch1.ogg'
|
||||
ranged = 1
|
||||
rapid = 3
|
||||
retreat_distance = 3
|
||||
minimum_distance = 3
|
||||
melee_block_chance = 0
|
||||
ranged_block_chance = 0
|
||||
icon_state = "syndicate_pistol"
|
||||
icon_living = "syndicate_pistol"
|
||||
projectiletype = /obj/item/projectile/beam/laser
|
||||
projectilesound = 'sound/weapons/laser.ogg'
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/armory
|
||||
name = "Syndicate Quartermaster"
|
||||
icon_state = "syndicatemeleespace"
|
||||
icon_living = "syndicatemeleespace"
|
||||
icon_state = "syndicate_stormtrooper_sword"
|
||||
icon_living = "syndicate_stormtrooper_sword"
|
||||
atmos_requirements = list("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
|
||||
maxHealth = 250
|
||||
health = 250
|
||||
melee_block_chance = 80
|
||||
maxHealth = 200
|
||||
health = 200
|
||||
melee_block_chance = 40
|
||||
alert_on_shield_breach = TRUE
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/armory/Initialize()
|
||||
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/armory/Initialize(mapload)
|
||||
..()
|
||||
if(prob(50))
|
||||
// 50% chance of switching to extremely dangerous ranged variant
|
||||
melee_damage_lower = 10
|
||||
melee_damage_upper = 10
|
||||
attacktext = "punches"
|
||||
attack_sound = 'sound/weapons/punch1.ogg'
|
||||
ranged = 1
|
||||
retreat_distance = 3
|
||||
minimum_distance = 3
|
||||
melee_block_chance = 0
|
||||
ranged_block_chance = 0
|
||||
icon_state = "syndicate_stormtrooper_shotgun"
|
||||
icon_living = "syndicate_stormtrooper_shotgun"
|
||||
projectiletype = /obj/item/projectile/bullet/sniper/penetrator // Ignores cover.
|
||||
projectilesound = 'sound/weapons/gunshots/gunshot_sniper.ogg'
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/armory/LateInitialize()
|
||||
@@ -231,8 +281,8 @@
|
||||
name = "Syndicate Backup"
|
||||
atmos_requirements = list("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
|
||||
icon_state = "syndicatemeleespace"
|
||||
icon_living = "syndicatemeleespace"
|
||||
icon_state = "syndicate_space_sword"
|
||||
icon_living = "syndicate_space_sword"
|
||||
speed = 1
|
||||
wander = 0
|
||||
alert_on_spacing = FALSE
|
||||
@@ -246,8 +296,8 @@
|
||||
name = "Syndicate Commando"
|
||||
atmos_requirements = list("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
|
||||
icon_state = "syndicatemeleespace"
|
||||
icon_living = "syndicatemeleespace"
|
||||
icon_state = "syndicate_space_sword"
|
||||
icon_living = "syndicate_space_sword"
|
||||
speed = 1
|
||||
loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando, /obj/item/melee/energy/sword/saber/red, /obj/item/shield/energy)
|
||||
|
||||
@@ -260,15 +310,15 @@
|
||||
rapid = 2
|
||||
retreat_distance = 5
|
||||
minimum_distance = 5
|
||||
icon_state = "syndicateranged"
|
||||
icon_living = "syndicateranged"
|
||||
icon_state = "syndicate_smg"
|
||||
icon_living = "syndicate_smg"
|
||||
projectilesound = 'sound/weapons/gunshots/gunshot.ogg'
|
||||
casingtype = /obj/item/ammo_casing/c45
|
||||
loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier, /obj/item/gun/projectile/automatic/c20r)
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/ranged/space
|
||||
icon_state = "syndicaterangedpsace"
|
||||
icon_living = "syndicaterangedpsace"
|
||||
icon_state = "syndicate_space_smg"
|
||||
icon_living = "syndicate_space_smg"
|
||||
name = "Syndicate Commando"
|
||||
atmos_requirements = list("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
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 301 KiB After Width: | Height: | Size: 271 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 117 KiB |
Reference in New Issue
Block a user