mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-14 04:02:31 +00:00
Merge remote-tracking branch 'origin/BaseBlep' into BranchBlep
This commit is contained in:
@@ -58,7 +58,7 @@ var/global/list/vr_mob_tf_options = list(
|
||||
"Construct Artificer" = /mob/living/simple_mob/construct/artificer,
|
||||
"Tech golem" = /mob/living/simple_mob/mechanical/technomancer_golem,
|
||||
"Metroid" = /mob/living/simple_mob/metroid/juvenile/baby,
|
||||
"Otie" = /mob/living/simple_mob/otie/cotie/chubby,
|
||||
"Otie" = /mob/living/simple_mob/vore/otie/cotie/chubby,
|
||||
"Shadekin" = /mob/living/simple_mob/shadekin,
|
||||
"Slime" = /mob/living/simple_mob/slime/xenobio/metal,
|
||||
"Corrupt hound" = /mob/living/simple_mob/vore/aggressive/corrupthound,
|
||||
@@ -73,7 +73,7 @@ var/global/list/vr_mob_tf_options = list(
|
||||
//"Dragon" = /mob/living/simple_mob/vore/bigdragon/friendly, //Currently adds 12 bellies to the user when transformed into. Do not uncomment without fixing this.
|
||||
"Riftwalker" = /mob/living/simple_mob/vore/demon/wendigo,
|
||||
"Horse" = /mob/living/simple_mob/vore/horse/big,
|
||||
"Morph" = /mob/living/simple_mob/vore/hostile/morph,
|
||||
"Morph" = /mob/living/simple_mob/vore/morph,
|
||||
"Leopardmander" = /mob/living/simple_mob/vore/leopardmander,
|
||||
"Rabbit" = /mob/living/simple_mob/vore/rabbit,
|
||||
"Red panda" = /mob/living/simple_mob/vore/redpanda,
|
||||
|
||||
@@ -728,15 +728,15 @@ var/global/list/xenobio_gold_mobs_hostile = list(
|
||||
/mob/living/simple_mob/vore/aggressive/dino,
|
||||
/mob/living/simple_mob/vore/aggressive/dragon,
|
||||
/mob/living/simple_mob/vore/aggressive/frog,
|
||||
/mob/living/simple_mob/otie,
|
||||
/mob/living/simple_mob/otie/red,
|
||||
/mob/living/simple_mob/vore/otie,
|
||||
/mob/living/simple_mob/vore/otie/red,
|
||||
/mob/living/simple_mob/vore/aggressive/panther,
|
||||
/mob/living/simple_mob/vore/aggressive/rat,
|
||||
/mob/living/simple_mob/vore/aggressive/giant_snake,
|
||||
/mob/living/simple_mob/vore/sect_drone,
|
||||
/mob/living/simple_mob/vore/sect_queen,
|
||||
/mob/living/simple_mob/vore/weretiger,
|
||||
/mob/living/simple_mob/animal/wolf,
|
||||
/mob/living/simple_mob/vore/wolf,
|
||||
/mob/living/simple_mob/vore/xeno_defanged)
|
||||
|
||||
var/global/list/xenobio_gold_mobs_bosses = list(
|
||||
@@ -783,7 +783,7 @@ var/global/list/xenobio_gold_mobs_safe = list(
|
||||
/mob/living/simple_mob/vore/fennix,
|
||||
/mob/living/simple_mob/vore/hippo,
|
||||
/mob/living/simple_mob/vore/horse,
|
||||
/mob/living/simple_mob/animal/space/jelly,
|
||||
/mob/living/simple_mob/vore/jelly,
|
||||
/mob/living/simple_mob/vore/oregrub,
|
||||
/mob/living/simple_mob/vore/oregrub/lava,
|
||||
/mob/living/simple_mob/vore/rabbit,
|
||||
@@ -935,14 +935,14 @@ var/global/list/event_wildlife_roaming = list(
|
||||
list(
|
||||
list(/mob/living/simple_mob/vore/aggressive/frog = 1),
|
||||
list(/mob/living/simple_mob/tomato = 1),
|
||||
list(/mob/living/simple_mob/animal/wolf = 1),
|
||||
list(/mob/living/simple_mob/vore/wolf = 1),
|
||||
list(/mob/living/simple_mob/vore/aggressive/dino = 1),
|
||||
list(/mob/living/simple_mob/animal/space/bats = 1)
|
||||
),
|
||||
list(
|
||||
list(/mob/living/simple_mob/animal/space/bear = 1),
|
||||
list(/mob/living/simple_mob/vore/aggressive/deathclaw = 1),
|
||||
list(/mob/living/simple_mob/otie = 1),
|
||||
list(/mob/living/simple_mob/vore/otie = 1),
|
||||
list(/mob/living/simple_mob/vore/aggressive/panther = 1),
|
||||
list(/mob/living/simple_mob/vore/aggressive/rat = 1),
|
||||
list(/mob/living/simple_mob/vore/aggressive/giant_snake = 1),
|
||||
|
||||
@@ -78,7 +78,7 @@ SUBSYSTEM_DEF(mapping)
|
||||
var/list/deffo_load = using_map.lateload_z_levels
|
||||
var/list/maybe_load = using_map.lateload_gateway
|
||||
var/list/also_load = using_map.lateload_overmap
|
||||
|
||||
var/list/redgate_load = using_map.lateload_redgate
|
||||
|
||||
for(var/list/maplist in deffo_load)
|
||||
if(!islist(maplist))
|
||||
@@ -134,6 +134,27 @@ SUBSYSTEM_DEF(mapping)
|
||||
else
|
||||
MT.load_new_z(centered = FALSE)
|
||||
|
||||
if(LAZYLEN(redgate_load))
|
||||
var/picklist = pick(redgate_load)
|
||||
|
||||
if(!picklist) //No lateload maps at all
|
||||
return
|
||||
|
||||
if(!islist(picklist)) //So you can have a 'chain' of z-levels that make up one away mission
|
||||
error("Randompick Z level [picklist] is not a list! Must be in a list!")
|
||||
return
|
||||
|
||||
for(var/map in picklist)
|
||||
if(islist(map))
|
||||
// TRIPLE NEST. In this situation we pick one at random from the choices in the list.
|
||||
//This allows a sort of a1,a2,a3,b1,b2,b3,c1,c2,c3 setup where it picks one 'a', one 'b', one 'c'
|
||||
map = pick(map)
|
||||
var/datum/map_template/MT = map_templates[map]
|
||||
if(!istype(MT))
|
||||
error("Randompick Z level \"[map]\" is not a valid map!")
|
||||
else
|
||||
MT.load_new_z(centered = FALSE)
|
||||
|
||||
|
||||
/datum/controller/subsystem/mapping/proc/preloadShelterTemplates()
|
||||
for(var/datum/map_template/shelter/shelter_type as anything in subtypesof(/datum/map_template/shelter))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/area/awaymission
|
||||
/area
|
||||
name = "\improper Unknown Location"
|
||||
icon_state = "away"
|
||||
var/list/valid_spawn_turfs = list()
|
||||
@@ -6,47 +6,80 @@
|
||||
var/list/valid_flora = list()
|
||||
var/mobcountmax = 0
|
||||
var/floracountmax = 0
|
||||
var/semirandom = FALSE
|
||||
var/semirandom_groups = 0
|
||||
var/semirandom_group_min = 0
|
||||
var/semirandom_group_max = 10
|
||||
var/mob_intent = "default" //"default" uses default settings, use "hostile", "retaliate", or "passive" respectively
|
||||
|
||||
/area/awaymission/proc/EvalValidSpawnTurfs()
|
||||
/area/proc/EvalValidSpawnTurfs()
|
||||
//Adds turfs to the valid)turfs list, used for spawning.
|
||||
if(mobcountmax || floracountmax)
|
||||
if(mobcountmax || floracountmax || semirandom)
|
||||
for(var/turf/simulated/floor/F in src)
|
||||
valid_spawn_turfs += F
|
||||
for(var/turf/unsimulated/floor/F in src)
|
||||
valid_spawn_turfs += F
|
||||
|
||||
/area/awaymission/LateInitialize()
|
||||
/area/LateInitialize()
|
||||
..()
|
||||
EvalValidSpawnTurfs()
|
||||
|
||||
if(!valid_spawn_turfs.len && (mobcountmax || floracountmax))
|
||||
to_world_log("Error! [src] does not have any turfs!")
|
||||
log_and_message_admins("Error! [src] does not have any turfs!")
|
||||
return TRUE
|
||||
|
||||
//Handles random mob placement for mobcountmax, as defined/randomized in initialize of each individual area.
|
||||
if(mobcountmax)
|
||||
if(mobcountmax || semirandom)
|
||||
spawn_mob_on_turf()
|
||||
|
||||
//Handles random flora placement for floracountmax, as defined/randomized in initialize of each individual area.
|
||||
if(floracountmax)
|
||||
spawn_flora_on_turf()
|
||||
|
||||
to_world("Away mission spawning done.")
|
||||
|
||||
/area/awaymission/proc/spawn_mob_on_turf()
|
||||
/area/proc/spawn_mob_on_turf()
|
||||
if(!valid_mobs.len)
|
||||
to_world_log("[src] does not have a set valid mobs list!")
|
||||
return TRUE
|
||||
|
||||
var/mob/M
|
||||
var/turf/Turf
|
||||
for(var/mobscount = 0 to mobcountmax)
|
||||
M = pick(valid_mobs)
|
||||
if(semirandom)
|
||||
for(var/groupscount = 0 to (semirandom_groups - 1))
|
||||
var/ourgroup = pickweight(valid_mobs)
|
||||
var/goodnum = rand(semirandom_group_min, semirandom_group_max)
|
||||
for(var/mobscount = 0 to (goodnum - 1))
|
||||
M = pickweight(ourgroup)
|
||||
Turf = pick(valid_spawn_turfs)
|
||||
valid_spawn_turfs -= Turf
|
||||
new M(Turf)
|
||||
var/mob/ourmob = new M(Turf)
|
||||
adjust_mob(ourmob)
|
||||
else
|
||||
for(var/mobscount = 0 to mobcountmax)
|
||||
M = pickweight(valid_mobs)
|
||||
Turf = pick(valid_spawn_turfs)
|
||||
valid_spawn_turfs -= Turf
|
||||
var/mob/ourmob = new M(Turf)
|
||||
adjust_mob(ourmob)
|
||||
|
||||
/area/awaymission/proc/spawn_flora_on_turf()
|
||||
/area/proc/adjust_mob(var/mob/living/M)
|
||||
if(!isliving(M))
|
||||
log_admin("[src] spawned [M.type], which is not mob/living, FIXIT")
|
||||
return
|
||||
var/datum/ai_holder/AI = M.ai_holder
|
||||
switch(mob_intent)
|
||||
if("default")
|
||||
return
|
||||
if("hostile")
|
||||
AI.hostile = TRUE
|
||||
AI.retaliate = TRUE
|
||||
if("retaliate")
|
||||
AI.hostile = FALSE
|
||||
AI.retaliate = TRUE
|
||||
if("passive")
|
||||
AI.hostile = FALSE
|
||||
AI.retaliate = FALSE
|
||||
|
||||
/area/proc/spawn_flora_on_turf()
|
||||
if(!valid_flora.len)
|
||||
to_world_log("[src] does not have a set valid flora list!")
|
||||
return TRUE
|
||||
|
||||
@@ -124,6 +124,7 @@
|
||||
icon_state = "blue"
|
||||
requires_power = 0
|
||||
limit_dark_respite = TRUE
|
||||
limit_mob_size = FALSE
|
||||
ambience = AMBIENCE_OTHERWORLDLY
|
||||
flags = RAD_SHIELDED | AREA_FLAG_IS_NOT_PERSISTENT | BLUE_SHIELDED
|
||||
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
else if(src.density && (user.a_intent == I_HURT)) //If we can't pry it open and it's not a weapon.... Eh, let's attack it anyway.
|
||||
var/obj/item/weapon/W = C
|
||||
user.setClickCooldown(user.get_attack_speed(W))
|
||||
if(W.damtype == BRUTE || W.damtype == BURN)
|
||||
if(istype(W) && (W.damtype == BRUTE || W.damtype == BURN))
|
||||
user.do_attack_animation(src)
|
||||
if(W.force < min_force) //No actual non-weapon item shouls have a force greater than the min_force, but let's include this just in case.
|
||||
user.visible_message("<span class='danger'>\The [user] hits \the [src] with \the [W] with no visible effect.</span>")
|
||||
|
||||
@@ -3,7 +3,7 @@ var/bomb_set
|
||||
/obj/machinery/nuclearbomb
|
||||
name = "\improper Nuclear Fission Explosive"
|
||||
desc = "Uh oh. RUN!!!!"
|
||||
icon = 'icons/obj/stationobjs.dmi'
|
||||
icon = 'modular_chomp/icons/obj/stationobjs.dmi' //chompedit, use the better one
|
||||
icon_state = "nuclearbomb0"
|
||||
density = TRUE
|
||||
var/deployable = 0.0
|
||||
@@ -47,6 +47,7 @@ var/bomb_set
|
||||
if(timing)
|
||||
bomb_set = 1 //So long as there is one nuke timing, it means one nuke is armed.
|
||||
timeleft--
|
||||
playsound(src, 'sound/items/timer.ogg',50) //chompedit... beep :)
|
||||
if(timeleft <= 0)
|
||||
explode()
|
||||
for(var/mob/M in viewers(1, src))
|
||||
@@ -275,6 +276,7 @@ var/bomb_set
|
||||
icon_state = "nuclearbomb1"
|
||||
timing = 0
|
||||
bomb_set = 0
|
||||
set_security_level("red") //chompedit
|
||||
if(light_wire == temp_wire)
|
||||
lighthack = !lighthack
|
||||
|
||||
@@ -322,10 +324,13 @@ var/bomb_set
|
||||
icon_state = "nuclearbomb2"
|
||||
if(!safety)
|
||||
bomb_set = 1//There can still be issues with this reseting when there are multiple bombs. Not a big deal tho for Nuke/N
|
||||
set_security_level("delta")//chompedit
|
||||
else
|
||||
bomb_set = 0
|
||||
set_security_level("red")
|
||||
else
|
||||
bomb_set = 0
|
||||
set_security_level("red") //chompedit
|
||||
if(!lighthack)
|
||||
icon_state = "nuclearbomb1"
|
||||
if(href_list["safety"])
|
||||
@@ -333,6 +338,7 @@ var/bomb_set
|
||||
if(safety)
|
||||
timing = 0
|
||||
bomb_set = 0
|
||||
set_security_level("red") //chompedit
|
||||
if(href_list["anchor"])
|
||||
|
||||
if(removal_stage == 5)
|
||||
@@ -370,7 +376,7 @@ var/bomb_set
|
||||
safety = 1
|
||||
if(!lighthack)
|
||||
icon_state = "nuclearbomb3"
|
||||
playsound(src,'sound/machines/Alarm.ogg',100,0,5)
|
||||
world << sound('sound/machines/Alarm.ogg')//chompedit, nuke is big event, make it global
|
||||
if(ticker && ticker.mode)
|
||||
ticker.mode.explosion_in_progress = 1
|
||||
sleep(100)
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
|
||||
// Also recharge their internal battery.
|
||||
if(H.isSynthetic() && H.nutrition < 500) //VOREStation Edit
|
||||
H.nutrition = min(H.nutrition+(10*(1-max(H.species.synthetic_food_coeff, 0.9))), 500) //VOREStation Edit
|
||||
H.nutrition = min(H.nutrition+(10*(1-min(H.species.synthetic_food_coeff, 0.9))), 500) //VOREStation Edit
|
||||
cell.use(7000/450*10)
|
||||
|
||||
// And clear up radiation
|
||||
|
||||
@@ -185,12 +185,5 @@
|
||||
name = "Weasel Head"
|
||||
id = "weasel_head"
|
||||
build_path = /obj/item/mecha_parts/micro/part/weasel_head
|
||||
materials = list(MAT_STEEL = 7000, MAT_GLASS = 2500) */
|
||||
|
||||
/datum/design/item/mecha/medigun //Who the fuck thought it was a good idea to put this here?
|
||||
name = "BL-3/P directed restoration system"
|
||||
desc = "A portable medical system used to treat external injuries from afar."
|
||||
id = "mech_medigun"
|
||||
req_tech = list(TECH_MATERIAL = 5, TECH_COMBAT = 5, TECH_BIO = 6)
|
||||
materials = list(MAT_STEEL = 8000, MAT_GOLD = 2000, MAT_SILVER = 1750, MAT_DIAMOND = 1500, MAT_PHORON = 4000)
|
||||
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/medigun
|
||||
materials = list(MAT_STEEL = 7000, MAT_GLASS = 2500)
|
||||
*/
|
||||
|
||||
@@ -56,8 +56,8 @@ var/global/list/semirandom_mob_spawner_decisions = list()
|
||||
list(/mob/living/simple_mob/animal/passive/tindalos),
|
||||
list(/mob/living/simple_mob/animal/passive/yithian),
|
||||
list(
|
||||
/mob/living/simple_mob/animal/wolf = 10,
|
||||
/mob/living/simple_mob/animal/wolf/direwolf = 5,
|
||||
/mob/living/simple_mob/vore/wolf = 10,
|
||||
/mob/living/simple_mob/vore/wolf/direwolf = 5,
|
||||
/mob/living/simple_mob/vore/greatwolf = 1,
|
||||
/mob/living/simple_mob/vore/greatwolf/black = 1,
|
||||
/mob/living/simple_mob/vore/greatwolf/grey = 1
|
||||
@@ -75,10 +75,10 @@ var/global/list/semirandom_mob_spawner_decisions = list()
|
||||
/mob/living/simple_mob/animal/space/bear/brown
|
||||
),
|
||||
list(
|
||||
/mob/living/simple_mob/otie/feral,
|
||||
/mob/living/simple_mob/otie/feral/chubby,
|
||||
/mob/living/simple_mob/otie/red,
|
||||
/mob/living/simple_mob/otie/red/chubby
|
||||
/mob/living/simple_mob/vore/otie/feral,
|
||||
/mob/living/simple_mob/vore/otie/feral/chubby,
|
||||
/mob/living/simple_mob/vore/otie/red,
|
||||
/mob/living/simple_mob/vore/otie/red/chubby
|
||||
),
|
||||
list(/mob/living/simple_mob/animal/sif/diyaab),
|
||||
list(/mob/living/simple_mob/animal/sif/duck),
|
||||
@@ -144,7 +144,7 @@ var/global/list/semirandom_mob_spawner_decisions = list()
|
||||
/mob/living/simple_mob/animal/space/carp/large/huge = 5
|
||||
),
|
||||
list(/mob/living/simple_mob/animal/space/goose),
|
||||
list(/mob/living/simple_mob/animal/space/jelly),
|
||||
list(/mob/living/simple_mob/vore/jelly),
|
||||
list(/mob/living/simple_mob/animal/space/tree),
|
||||
list(
|
||||
/mob/living/simple_mob/vore/aggressive/corrupthound = 10,
|
||||
@@ -245,12 +245,12 @@ var/global/list/semirandom_mob_spawner_decisions = list()
|
||||
list(/mob/living/simple_mob/mechanical/wahlem),
|
||||
list(/mob/living/simple_mob/animal/passive/fox/syndicate),
|
||||
list(/mob/living/simple_mob/animal/passive/fox),
|
||||
list(/mob/living/simple_mob/animal/space/jelly),
|
||||
list(/mob/living/simple_mob/vore/jelly),
|
||||
list(
|
||||
/mob/living/simple_mob/otie/feral,
|
||||
/mob/living/simple_mob/otie/feral/chubby,
|
||||
/mob/living/simple_mob/otie/red,
|
||||
/mob/living/simple_mob/otie/red/chubby
|
||||
/mob/living/simple_mob/vore/otie/feral,
|
||||
/mob/living/simple_mob/vore/otie/feral/chubby,
|
||||
/mob/living/simple_mob/vore/otie/red,
|
||||
/mob/living/simple_mob/vore/otie/red/chubby
|
||||
),
|
||||
list(
|
||||
/mob/living/simple_mob/shadekin/blue = 100,
|
||||
@@ -377,8 +377,8 @@ var/global/list/semirandom_mob_spawner_decisions = list()
|
||||
list(/mob/living/simple_mob/animal/passive/tindalos) = 10,
|
||||
list(/mob/living/simple_mob/animal/passive/yithian) = 10,
|
||||
list(
|
||||
/mob/living/simple_mob/animal/wolf = 10,
|
||||
/mob/living/simple_mob/animal/wolf/direwolf = 5,
|
||||
/mob/living/simple_mob/vore/wolf = 10,
|
||||
/mob/living/simple_mob/vore/wolf/direwolf = 5,
|
||||
/mob/living/simple_mob/vore/greatwolf = 1,
|
||||
/mob/living/simple_mob/vore/greatwolf/black = 1,
|
||||
/mob/living/simple_mob/vore/greatwolf/grey = 1
|
||||
@@ -396,10 +396,10 @@ var/global/list/semirandom_mob_spawner_decisions = list()
|
||||
/mob/living/simple_mob/animal/space/bear/brown
|
||||
) = 1,
|
||||
list(
|
||||
/mob/living/simple_mob/otie/feral = 50,
|
||||
/mob/living/simple_mob/otie/feral/chubby = 10,
|
||||
/mob/living/simple_mob/otie/red = 5,
|
||||
/mob/living/simple_mob/otie/red/chubby = 1
|
||||
/mob/living/simple_mob/vore/otie/feral = 50,
|
||||
/mob/living/simple_mob/vore/otie/feral/chubby = 10,
|
||||
/mob/living/simple_mob/vore/otie/red = 5,
|
||||
/mob/living/simple_mob/vore/otie/red/chubby = 1
|
||||
) = 5,
|
||||
list(/mob/living/simple_mob/vore/aggressive/rat) = 15,
|
||||
list(/mob/living/simple_mob/animal/sif/diyaab) = 5,
|
||||
@@ -467,8 +467,8 @@ var/global/list/semirandom_mob_spawner_decisions = list()
|
||||
/mob/living/simple_mob/shadekin/purple = 10
|
||||
) = 1,
|
||||
list(
|
||||
/mob/living/simple_mob/animal/wolf = 10,
|
||||
/mob/living/simple_mob/animal/wolf/direwolf = 5,
|
||||
/mob/living/simple_mob/vore/wolf = 10,
|
||||
/mob/living/simple_mob/vore/wolf/direwolf = 5,
|
||||
/mob/living/simple_mob/vore/greatwolf = 1,
|
||||
/mob/living/simple_mob/vore/greatwolf/black = 1,
|
||||
/mob/living/simple_mob/vore/greatwolf/grey = 1
|
||||
@@ -502,13 +502,13 @@ var/global/list/semirandom_mob_spawner_decisions = list()
|
||||
/mob/living/simple_mob/animal/space/carp/large/huge = 5
|
||||
) = 50,
|
||||
list(/mob/living/simple_mob/animal/space/goose) = 50,
|
||||
list(/mob/living/simple_mob/animal/space/jelly) = 40,
|
||||
list(/mob/living/simple_mob/vore/jelly) = 40,
|
||||
list(/mob/living/simple_mob/animal/space/tree) = 15,
|
||||
list(
|
||||
/mob/living/simple_mob/otie/feral = 50,
|
||||
/mob/living/simple_mob/otie/feral/chubby = 10,
|
||||
/mob/living/simple_mob/otie/red = 5,
|
||||
/mob/living/simple_mob/otie/red/chubby = 1
|
||||
/mob/living/simple_mob/vore/otie/feral = 50,
|
||||
/mob/living/simple_mob/vore/otie/feral/chubby = 10,
|
||||
/mob/living/simple_mob/vore/otie/red = 5,
|
||||
/mob/living/simple_mob/vore/otie/red/chubby = 1
|
||||
) = 40,
|
||||
list(
|
||||
/mob/living/simple_mob/vore/aggressive/corrupthound = 10,
|
||||
@@ -719,17 +719,17 @@ var/global/list/semirandom_mob_spawner_decisions = list()
|
||||
|
||||
possible_mob_types = list(
|
||||
list(
|
||||
/mob/living/simple_mob/animal/wolf/direwolf = 5,
|
||||
/mob/living/simple_mob/vore/wolf/direwolf = 5,
|
||||
/mob/living/simple_mob/vore/greatwolf = 1,
|
||||
/mob/living/simple_mob/vore/greatwolf/black = 1,
|
||||
/mob/living/simple_mob/vore/greatwolf/grey = 1
|
||||
) = 100,
|
||||
list(/mob/living/simple_mob/animal/space/jelly) = 70,
|
||||
list(/mob/living/simple_mob/vore/jelly) = 70,
|
||||
list(
|
||||
/mob/living/simple_mob/otie/feral,
|
||||
/mob/living/simple_mob/otie/feral/chubby,
|
||||
/mob/living/simple_mob/otie/red,
|
||||
/mob/living/simple_mob/otie/red/chubby
|
||||
/mob/living/simple_mob/vore/otie/feral,
|
||||
/mob/living/simple_mob/vore/otie/feral/chubby,
|
||||
/mob/living/simple_mob/vore/otie/red,
|
||||
/mob/living/simple_mob/vore/otie/red/chubby
|
||||
) = 50,
|
||||
list(
|
||||
/mob/living/simple_mob/shadekin/blue = 100,
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
anchored = TRUE
|
||||
density = FALSE
|
||||
var/health = 15
|
||||
var/health = 10
|
||||
|
||||
//similar to weeds, but only barfed out by nurses manually
|
||||
/obj/effect/spider/ex_act(severity)
|
||||
@@ -312,7 +312,7 @@
|
||||
name = "cocoon"
|
||||
desc = "Something wrapped in silky spider web"
|
||||
icon_state = "cocoon1"
|
||||
health = 60
|
||||
health = 15
|
||||
|
||||
/obj/effect/spider/cocoon/New()
|
||||
icon_state = pick("cocoon1","cocoon2","cocoon3")
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
//The stuff we want to be revivable normally
|
||||
/mob/living/simple_mob/animal
|
||||
ic_revivable = TRUE
|
||||
/mob/living/simple_mob/otie
|
||||
/mob/living/simple_mob/vore/otie
|
||||
ic_revivable = TRUE
|
||||
/mob/living/simple_mob/vore
|
||||
ic_revivable = TRUE
|
||||
|
||||
99
code/game/objects/items/devices/scanners/guide.dm
Normal file
99
code/game/objects/items/devices/scanners/guide.dm
Normal file
@@ -0,0 +1,99 @@
|
||||
/obj/item/device/healthanalyzer/verb/toggle_guide()
|
||||
name = "Toggle Guidance"
|
||||
desc = "Toggles whether or not \the [src] will provide guidance and instruction in addition to scanning."
|
||||
guide = !guide
|
||||
to_chat(usr, "<span class='notice'>You toggle \the [src]'s guidance system.</span>")
|
||||
|
||||
|
||||
/obj/item/device/healthanalyzer/guide
|
||||
name = "Instructional health analyzer"
|
||||
desc = "A hand-held body scanner able to distinguish vital signs of the subject. It shows extra information to medical personnel!"
|
||||
guide = TRUE
|
||||
icon_state = "health-g"
|
||||
|
||||
/obj/item/device/healthanalyzer/proc/guide(var/mob/living/carbon/human/M, mob/living/user)
|
||||
|
||||
var/obj/item/weapon/card/id/ourid = user?.GetIdCard()
|
||||
if(!ourid)
|
||||
return
|
||||
if(access_change_ids in ourid.access)
|
||||
playsound(src, 'sound/machines/defib_failed.ogg', 50, 0)
|
||||
return
|
||||
if(access_medical in ourid.access)
|
||||
playsound(src, 'sound/effects/pop.ogg', 50, FALSE)
|
||||
else
|
||||
playsound(src, 'sound/machines/defib_failed.ogg', 50, 0)
|
||||
return
|
||||
if(!ishuman(M))
|
||||
return
|
||||
|
||||
var/dat = ""
|
||||
|
||||
var/bleeding_external = FALSE
|
||||
var/bleeding_internal = FALSE
|
||||
var/infection = FALSE
|
||||
var/organ = FALSE
|
||||
var/bone = FALSE
|
||||
var/bloodloss = FALSE
|
||||
var/robotparts = FALSE
|
||||
|
||||
for(var/obj/item/organ/org in M.organs)
|
||||
if(org.robotic >= ORGAN_ROBOT)
|
||||
robotparts = TRUE
|
||||
continue
|
||||
if(istype(org,/obj/item/organ/external))
|
||||
var/obj/item/organ/external/e = org
|
||||
if(e.status & ORGAN_BLEEDING)
|
||||
bleeding_external = TRUE
|
||||
if(e.status & ORGAN_BROKEN && (!e.splinted))
|
||||
bone = TRUE
|
||||
if(istype(org,/obj/item/organ/internal))
|
||||
if(org.status & ORGAN_BLEEDING)
|
||||
bleeding_internal = TRUE
|
||||
if(org.damage)
|
||||
organ = TRUE
|
||||
if(org.germ_level > INFECTION_LEVEL_ONE)
|
||||
infection = TRUE
|
||||
|
||||
var/blood_volume = M.vessel.get_reagent_amount("blood")
|
||||
if(blood_volume <= M.species.blood_volume*M.species.blood_level_safe)
|
||||
bloodloss = TRUE
|
||||
|
||||
if(bleeding_external)
|
||||
dat += "<b>Surface bleeding</b> - Bandage immediately or apply brute-damage fixing chemicals (i.e. Bicaridine) if no bandages available.<br>"
|
||||
if(bleeding_internal && (advscan >= 1 && showadvscan == 1))
|
||||
dat += "<b>Internal bleeding</b> - Commence internal vein repair surgery or apply clotting chemicals (i.e. Myelamine).<br>"
|
||||
if(M.getOxyLoss())
|
||||
dat += "<b>Suffociation</b> - Give Dexalin or Dexaline Plus. Check for heart or lung damage.<br>"
|
||||
if(infection)
|
||||
dat += "<b>Infection</b> - Give Spaceacilin. If severe, use Corophizine or overdose on Spaceacilin and monitor until well.<br>"
|
||||
if((M.getBrainLoss() >= 1 && advscan >= 2 && showadvscan == 1) || M.getBrainLoss() >= 10)
|
||||
dat += "<b>Brain damage</b> - Commence brain repair surgery, apply Alkysine, or universal organ-repair chemicals. (i.e. Peridaxon)<br>"
|
||||
if(M.radiation || M.accumulated_rads)
|
||||
dat += "<b>Radiation</b> - Give Hyroanlin or Arithazine. Monitor for genetic damage.<br>"
|
||||
if(organ && (advscan >= 1 && showadvscan == 1))
|
||||
dat += "<b>Organ damage</b> - Give Peridaxon. Perform full body scan for targetted organ repair surgery.<br>"
|
||||
if(bloodloss)
|
||||
dat += "<b>Low blood volume</b> - Commence blood transfusion via IV drip or provide blood-restorative chemicals (i.e. Iron)."
|
||||
if(M.getToxLoss())
|
||||
dat += "<b>Toxins</b> - Give Dylovene or Cartholine. Vomitting is normal and helpful. Tends to be a symptom of larger issues, such as infection.<br>"
|
||||
if(M.getBruteLoss())
|
||||
dat += "<b>Brute Trauma</b> - Bandage wounded body part. Give Bicaridine or Vermicetol.<br>"
|
||||
if(M.getFireLoss())
|
||||
dat += "<b>Surface burn</b> - Salve wounded body part in ointment. Give Kelotane or Dermaline. Check for infections.<br>"
|
||||
if(M.getCloneLoss())
|
||||
dat += "<b>Genetic damage</b> - Utilize cryogenic pod with appropriate chemicals (i.e. Cryoxadone) and below 70 K, or give Rezadone.<br>"
|
||||
if(bone)
|
||||
dat += "<b>Bone fracture</b> - Splint damaged area. Treat with bone repair surgery or Osteodaxon after treating brute damage.<br>"
|
||||
if(M.virus2.len)
|
||||
dat += "<b>Viral infection</b> - Proceed with virology pathogen curing procedures or apply antiviral chemicals (i.e. Corophizine)<br>"
|
||||
if(robotparts)
|
||||
dat += "<b>Robotic body parts</b> - Should not be repaired by medical personnel, refer to robotics if damaged."
|
||||
|
||||
var/peeb
|
||||
if(dat)
|
||||
peeb +="<span class='notice'><b>GUIDANCE SYSTEM BEGIN</b></span><br>"
|
||||
peeb += dat
|
||||
peeb += "<span class='notice'>For more detailed information about patient condition, use the stationary scanner in medbay.</span>"
|
||||
|
||||
user.show_message(peeb, 1)
|
||||
@@ -15,12 +15,20 @@
|
||||
var/mode = 1;
|
||||
var/advscan = 0
|
||||
var/showadvscan = 1
|
||||
var/guide = FALSE
|
||||
|
||||
/obj/item/device/healthanalyzer/New()
|
||||
if(advscan >= 1)
|
||||
verbs += /obj/item/device/healthanalyzer/proc/toggle_adv
|
||||
..()
|
||||
|
||||
/obj/item/device/healthanalyzer/examine(mob/user)
|
||||
. = ..()
|
||||
if(guide)
|
||||
. += "<span class='notice'>Guidance is currently enabled.</span>"
|
||||
else
|
||||
. += "<span class='notice'>Guidance is currently disabled.</span>"
|
||||
|
||||
/obj/item/device/healthanalyzer/do_surgery(mob/living/M, mob/living/user)
|
||||
if(user.a_intent != I_HELP) //in case it is ever used as a surgery tool
|
||||
return ..()
|
||||
@@ -109,19 +117,14 @@
|
||||
severity = "Lethal"
|
||||
else if(M.radiation >= 600)
|
||||
severity = "Critical"
|
||||
else if(M.radiation >= 50)
|
||||
else if(M.radiation >= 400)
|
||||
severity = "Severe"
|
||||
else if(M.radiation >= 25)
|
||||
else if(M.radiation >= 300)
|
||||
severity = "Moderate"
|
||||
else if(M.radiation >= 1)
|
||||
else if(M.radiation >= 100)
|
||||
severity = "Low"
|
||||
dat += "<span class='warning'>[severity] levels of radiation detected. [(severity == "Critical") ? " Immediate treatment advised." : ""]</span><br>"
|
||||
dat += "<span class='warning'>[severity] levels of acute radiation sickness detected. [round(M.radiation/50)]Gy. [(severity == "Critical" || severity == "Lethal") ? " Immediate treatment advised." : ""]</span><br>"
|
||||
else
|
||||
dat += "<span class='warning'>Radiation detected.</span><br>"
|
||||
dat += "<span class='warning'>Acute radiation sickness detected.</span><br>"
|
||||
if(M.accumulated_rads)
|
||||
if(advscan >= 2 && showadvscan == 1)
|
||||
@@ -303,6 +306,8 @@
|
||||
dat += "<span class='notice'>Subject is a Xenochimera. Treat accordingly.</span>"
|
||||
// VOREStation Edit End
|
||||
user.show_message(dat, 1)
|
||||
if(guide)
|
||||
guide(M, user)
|
||||
|
||||
/obj/item/device/healthanalyzer/verb/toggle_mode()
|
||||
set name = "Switch Verbosity"
|
||||
|
||||
@@ -208,7 +208,7 @@
|
||||
|
||||
var/mattermult = istype(Ob, /obj/item) ? min(2000, 400 * Ob.w_class) : 2000
|
||||
|
||||
Ob.matter[recipe.use_material] = mattermult / produced * required
|
||||
Ob.matter[recipe.matter_material] = mattermult / produced * required
|
||||
|
||||
O.set_dir(user.dir)
|
||||
O.add_fingerprint(user)
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
name = "tile"
|
||||
singular_name = "tile"
|
||||
desc = "A non-descript floor tile"
|
||||
icon = 'icons/obj/stacks.dmi' //CHOMPedit - parent obj/item/stack got edited, this puts icon back for carpets.
|
||||
randpixel = 7
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
max_amount = 60
|
||||
|
||||
@@ -592,8 +592,8 @@
|
||||
list(/mob/living/simple_mob/animal/passive/tindalos),
|
||||
list(/mob/living/simple_mob/animal/passive/yithian),
|
||||
list(
|
||||
/mob/living/simple_mob/animal/wolf,
|
||||
/mob/living/simple_mob/animal/wolf/direwolf
|
||||
/mob/living/simple_mob/vore/wolf,
|
||||
/mob/living/simple_mob/vore/wolf/direwolf
|
||||
),
|
||||
list(/mob/living/simple_mob/vore/rabbit),
|
||||
list(/mob/living/simple_mob/vore/redpanda),
|
||||
@@ -608,10 +608,10 @@
|
||||
/mob/living/simple_mob/animal/space/bear/brown
|
||||
),
|
||||
list(
|
||||
/mob/living/simple_mob/otie/feral,
|
||||
/mob/living/simple_mob/otie/feral/chubby,
|
||||
/mob/living/simple_mob/otie/red,
|
||||
/mob/living/simple_mob/otie/red/chubby
|
||||
/mob/living/simple_mob/vore/otie/feral,
|
||||
/mob/living/simple_mob/vore/otie/feral/chubby,
|
||||
/mob/living/simple_mob/vore/otie/red,
|
||||
/mob/living/simple_mob/vore/otie/red/chubby
|
||||
),
|
||||
list(/mob/living/simple_mob/animal/sif/diyaab),
|
||||
list(/mob/living/simple_mob/animal/sif/duck),
|
||||
@@ -650,8 +650,8 @@
|
||||
/mob/living/simple_mob/animal/giant_spider/webslinger = 5,
|
||||
/mob/living/simple_mob/animal/giant_spider/broodmother = 1),
|
||||
list(
|
||||
/mob/living/simple_mob/animal/wolf = 10,
|
||||
/mob/living/simple_mob/animal/wolf/direwolf = 5,
|
||||
/mob/living/simple_mob/vore/wolf = 10,
|
||||
/mob/living/simple_mob/vore/wolf/direwolf = 5,
|
||||
/mob/living/simple_mob/vore/greatwolf = 1,
|
||||
/mob/living/simple_mob/vore/greatwolf/black = 1,
|
||||
/mob/living/simple_mob/vore/greatwolf/grey = 1
|
||||
@@ -684,7 +684,7 @@
|
||||
/mob/living/simple_mob/animal/space/carp/large/huge = 5
|
||||
),
|
||||
list(/mob/living/simple_mob/animal/space/goose),
|
||||
list(/mob/living/simple_mob/animal/space/jelly),
|
||||
list(/mob/living/simple_mob/vore/jelly),
|
||||
list(/mob/living/simple_mob/animal/space/tree),
|
||||
list(
|
||||
/mob/living/simple_mob/vore/aggressive/corrupthound = 10,
|
||||
@@ -785,13 +785,13 @@
|
||||
list(/mob/living/simple_mob/mechanical/wahlem),
|
||||
list(/mob/living/simple_mob/animal/passive/fox/syndicate),
|
||||
list(/mob/living/simple_mob/animal/passive/fox),
|
||||
list(/mob/living/simple_mob/animal/wolf/direwolf),
|
||||
list(/mob/living/simple_mob/animal/space/jelly),
|
||||
list(/mob/living/simple_mob/vore/wolf/direwolf),
|
||||
list(/mob/living/simple_mob/vore/jelly),
|
||||
list(
|
||||
/mob/living/simple_mob/otie/feral,
|
||||
/mob/living/simple_mob/otie/feral/chubby,
|
||||
/mob/living/simple_mob/otie/red,
|
||||
/mob/living/simple_mob/otie/red/chubby
|
||||
/mob/living/simple_mob/vore/otie/feral,
|
||||
/mob/living/simple_mob/vore/otie/feral/chubby,
|
||||
/mob/living/simple_mob/vore/otie/red,
|
||||
/mob/living/simple_mob/vore/otie/red/chubby
|
||||
),
|
||||
list(
|
||||
/mob/living/simple_mob/shadekin/blue = 100,
|
||||
|
||||
@@ -102,17 +102,17 @@
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/otie
|
||||
desc = "It is set to detonate in 5 seconds. It will release a otie that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Otie)"
|
||||
spawner_type = /mob/living/simple_mob/otie/friendly
|
||||
spawner_type = /mob/living/simple_mob/vore/otie/friendly
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/otie/chubby
|
||||
desc = "It is set to detonate in 5 seconds. It will release a chonker otie that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Well feed Otie)"
|
||||
spawner_type = /mob/living/simple_mob/otie/friendly/chubby
|
||||
spawner_type = /mob/living/simple_mob/vore/otie/friendly/chubby
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/zorgoia
|
||||
desc = "It is set to detonate in 5 seconds. It will release a zorgoia that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Zorgoia)"
|
||||
spawner_type = /mob/living/simple_mob/otie/zorgoia/friendly
|
||||
spawner_type = /mob/living/simple_mob/vore/otie/zorgoia/friendly
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/gygax
|
||||
desc = "You feel great power inside this small round sphere, with great powers comes great responsibilities!"
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
var/static/non_micro_types = list(
|
||||
/mob/living/simple_mob/vore/squirrel,
|
||||
/mob/living/simple_mob/vore/alienanimals/catslug,
|
||||
/mob/living/simple_mob/vore/hostile/morph,
|
||||
/mob/living/simple_mob/vore/morph,
|
||||
/mob/living/simple_mob/protean_blob,
|
||||
/mob/living/simple_mob/slime
|
||||
)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
/mob/living/simple_mob/animal/space/carp = 10,
|
||||
/obj/structure/closet/crate/mimic = 2,
|
||||
/mob/living/simple_mob/animal/space/bats = 70,
|
||||
/mob/living/simple_mob/animal/space/jelly = 25,
|
||||
/mob/living/simple_mob/vore/jelly = 25,
|
||||
/mob/living/simple_mob/animal/space/bear = 1,
|
||||
/mob/living/simple_mob/vore/aggressive/deathclaw = 1,
|
||||
/mob/living/simple_mob/animal/space/goose = 60,
|
||||
|
||||
@@ -157,7 +157,7 @@ It also makes it so a ghost wont know where all the goodies/mobs are.
|
||||
invisibility = 101
|
||||
spawn_types = list(
|
||||
/mob/living/simple_mob/animal/passive/gaslamp = 20,
|
||||
// /mob/living/simple_mob/otie/feral = 10,
|
||||
// /mob/living/simple_mob/vore/otie/feral = 10,
|
||||
/mob/living/simple_mob/vore/aggressive/dino/virgo3b = 5,
|
||||
/mob/living/simple_mob/vore/aggressive/dragon/virgo3b = 1
|
||||
)
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
/obj/random/outside_mob/item_to_spawn() // Special version for mobs to have the same faction.
|
||||
return pick(
|
||||
prob(50);/mob/living/simple_mob/animal/passive/gaslamp,
|
||||
// prob(50);/mob/living/simple_mob/otie/feral, // Removed until Otie code is unfucked.
|
||||
// prob(50);/mob/living/simple_mob/vore/otie/feral, // Removed until Otie code is unfucked.
|
||||
prob(20);/mob/living/simple_mob/vore/aggressive/dino/virgo3b,
|
||||
prob(1);/mob/living/simple_mob/vore/aggressive/dragon/virgo3b)
|
||||
|
||||
|
||||
@@ -47,16 +47,16 @@
|
||||
/mob/living/simple_mob/vore/horse,
|
||||
/mob/living/simple_mob/vore/aggressive/panther,
|
||||
/mob/living/simple_mob/vore/aggressive/giant_snake,
|
||||
/mob/living/simple_mob/animal/wolf,
|
||||
/mob/living/simple_mob/vore/wolf,
|
||||
/mob/living/simple_mob/animal/space/bear;0.5,
|
||||
/mob/living/simple_mob/animal/space/carp,
|
||||
/mob/living/simple_mob/vore/aggressive/mimic,
|
||||
/mob/living/simple_mob/vore/aggressive/rat,
|
||||
/mob/living/simple_mob/vore/aggressive/rat/tame,
|
||||
/mob/living/simple_mob/otie/zorgoia, //CHOMPstation edit
|
||||
/mob/living/simple_mob/vore/otie/zorgoia, //CHOMPstation edit
|
||||
/mob/living/simple_mob/vore/rabbit,
|
||||
/mob/living/simple_mob/vore/weretiger;0.5,
|
||||
/mob/living/simple_mob/otie;0.5
|
||||
// /mob/living/simple_mob/vore/otie;0.5
|
||||
))
|
||||
return ..()
|
||||
|
||||
@@ -72,9 +72,9 @@
|
||||
/mob/living/simple_mob/animal/space/alien/drone,
|
||||
/mob/living/simple_mob/animal/space/alien/sentinel,
|
||||
/mob/living/simple_mob/animal/space/alien/queen,
|
||||
/mob/living/simple_mob/otie/feral,
|
||||
/mob/living/simple_mob/otie/feral/chubby,
|
||||
/mob/living/simple_mob/otie/red,
|
||||
/mob/living/simple_mob/vore/otie/feral, //ChompEDIT uncomment
|
||||
/mob/living/simple_mob/vore/otie/feral/chubby, //ChompEDIT add
|
||||
/mob/living/simple_mob/vore/otie/red, //ChompEDIT uncomment
|
||||
/mob/living/simple_mob/vore/aggressive/corrupthound))
|
||||
return ..()
|
||||
|
||||
@@ -83,11 +83,11 @@
|
||||
desc = "The VARMAcorp bioengineering division flagship product on trained optimal snowflake guard dogs."
|
||||
icon = 'icons/obj/storage_vr.dmi'
|
||||
icon_state = "sotiecrate"
|
||||
starts_with = list(/mob/living/simple_mob/otie/security)
|
||||
starts_with = list(/mob/living/simple_mob/vore/otie/security)
|
||||
|
||||
/obj/structure/largecrate/animal/otie/guardbeast/Initialize()
|
||||
starts_with = list(pick(/mob/living/simple_mob/otie/security,
|
||||
/mob/living/simple_mob/otie/security/chubby))
|
||||
starts_with = list(pick(/mob/living/simple_mob/vore/otie/security,
|
||||
/mob/living/simple_mob/vore/otie/security/chubby))
|
||||
return ..()
|
||||
|
||||
/obj/structure/largecrate/animal/guardmutant
|
||||
@@ -95,12 +95,12 @@
|
||||
desc = "The VARMAcorp bioengineering division flagship product on trained optimal snowflake guard dogs. This one can survive hostile atmosphere."
|
||||
icon = 'icons/obj/storage_vr.dmi'
|
||||
icon_state = "sotiecrate"
|
||||
starts_with = list(/mob/living/simple_mob/otie/security/phoron)
|
||||
starts_with = list(/mob/living/simple_mob/vore/otie/security/phoron)
|
||||
|
||||
/obj/structure/largecrate/animal/otie/guardmutant/Initialize()
|
||||
starts_with = list(pick(/mob/living/simple_mob/otie/security/phoron;2,
|
||||
/mob/living/simple_mob/otie/security/phoron/red;0.5,
|
||||
/mob/living/simple_mob/otie/security/phoron/red/chubby;0.5))
|
||||
starts_with = list(pick(/mob/living/simple_mob/vore/otie/security/phoron;2,
|
||||
/mob/living/simple_mob/vore/otie/security/phoron/red;0.5,
|
||||
/mob/living/simple_mob/vore/otie/security/phoron/red/chubby;0.5))
|
||||
return ..()
|
||||
|
||||
/obj/structure/largecrate/animal/otie
|
||||
@@ -108,23 +108,23 @@
|
||||
desc = "A warning on the side says the creature inside was returned to the supplier after injuring or devouring several unlucky members of the previous adoption family. It was given a second chance with the next customer. Godspeed and good luck with your new pet!"
|
||||
icon = 'icons/obj/storage_vr.dmi'
|
||||
icon_state = "otiecrate2"
|
||||
starts_with = list(/mob/living/simple_mob/otie/cotie)
|
||||
starts_with = list(/mob/living/simple_mob/vore/otie/cotie)
|
||||
var/taped = 1
|
||||
|
||||
/obj/structure/largecrate/animal/otie/Initialize()
|
||||
starts_with = list(pick(/mob/living/simple_mob/otie/cotie,
|
||||
/mob/living/simple_mob/otie/cotie/chubby))
|
||||
starts_with = list(pick(/mob/living/simple_mob/vore/otie/cotie,
|
||||
/mob/living/simple_mob/vore/otie/cotie/chubby))
|
||||
return ..()
|
||||
|
||||
/obj/structure/largecrate/animal/otie/phoron
|
||||
name = "VARMAcorp adaptive beta subject (Experimental)"
|
||||
desc = "VARMAcorp experimental hostile environment adaptive breeding development kit. WARNING, DO NOT RELEASE IN WILD!"
|
||||
starts_with = list(/mob/living/simple_mob/otie/cotie/phoron)
|
||||
starts_with = list(/mob/living/simple_mob/vore/otie/cotie/phoron)
|
||||
|
||||
/obj/structure/largecrate/animal/otie/phoron/Initialize()
|
||||
starts_with = list(pick(/mob/living/simple_mob/otie/cotie/phoron;2,
|
||||
/mob/living/simple_mob/otie/red/friendly;0.5,
|
||||
/mob/living/simple_mob/otie/red/chubby;0.5))
|
||||
starts_with = list(pick(/mob/living/simple_mob/vore/otie/cotie/phoron;2,
|
||||
/mob/living/simple_mob/vore/otie/red/friendly;0.5,
|
||||
/mob/living/simple_mob/vore/otie/red/chubby;0.5)) //ChompEDIT add
|
||||
return ..()
|
||||
|
||||
/obj/structure/largecrate/animal/otie/attack_hand(mob/living/carbon/human/M as mob)//I just couldn't decide between the icons lmao
|
||||
|
||||
@@ -29,10 +29,10 @@
|
||||
"Lizardman" = /mob/living/simple_mob/vore/aggressive/lizardman,//CHOMPedit: more mobs
|
||||
"Giant Frog" = /mob/living/simple_mob/vore/aggressive/frog,
|
||||
"Giant Rat" = /mob/living/simple_mob/vore/aggressive/rat,
|
||||
"Jelly Blob" = /mob/living/simple_mob/animal/space/jelly,
|
||||
"Wolf" = /mob/living/simple_mob/animal/wolf,
|
||||
"Dire Wolf" = /mob/living/simple_mob/animal/wolf/direwolf,//CHOMPedit: more mobs
|
||||
"Large Dog" = /mob/living/simple_mob/animal/wolf/direwolf/dog,//CHOMPedit: more mobs
|
||||
"Jelly Blob" = /mob/living/simple_mob/vore/jelly,
|
||||
"Wolf" = /mob/living/simple_mob/vore/wolf,
|
||||
"Dire Wolf" = /mob/living/simple_mob/vore/wolf/direwolf,//CHOMPedit: more mobs
|
||||
"Large Dog" = /mob/living/simple_mob/vore/wolf/direwolf/dog,//CHOMPedit: more mobs
|
||||
"Hyena" = /mob/living/simple_mob/animal/hyena,//CHOMPedit: more mobs
|
||||
"Juvenile Solargrub" = /mob/living/simple_mob/vore/solargrub,
|
||||
"Sect Queen" = /mob/living/simple_mob/vore/sect_queen,
|
||||
@@ -41,13 +41,13 @@
|
||||
"Panther" = /mob/living/simple_mob/vore/aggressive/panther,
|
||||
"Giant Snake" = /mob/living/simple_mob/vore/aggressive/giant_snake,
|
||||
"Deathclaw" = /mob/living/simple_mob/vore/aggressive/deathclaw,
|
||||
"Otie" = /mob/living/simple_mob/otie,
|
||||
"Chubby Otie" = /mob/living/simple_mob/otie/friendly/chubby,//CHOMPedit: more mobs
|
||||
"Mutated Otie" = /mob/living/simple_mob/otie/feral,
|
||||
"Chubby Mutated Otie" = /mob/living/simple_mob/otie/feral/chubby,//CHOMPedit: more mobs
|
||||
"Red Otie" = /mob/living/simple_mob/otie/red,
|
||||
"Chubby Red Otie" = /mob/living/simple_mob/otie/red/chubby,//CHOMPedit: more mobs
|
||||
"Zorgoia" = /mob/living/simple_mob/otie/zorgoia,//CHOMPedit: more mobs
|
||||
"Otie" = /mob/living/simple_mob/vore/otie,
|
||||
"Chubby Otie" = /mob/living/simple_mob/vore/otie/friendly/chubby,//CHOMPedit: more mobs
|
||||
"Mutated Otie" =/mob/living/simple_mob/vore/otie/feral,
|
||||
"Chubby Mutated Otie" = /mob/living/simple_mob/vore/otie/feral/chubby,//CHOMPedit: more mobs
|
||||
"Red Otie" = /mob/living/simple_mob/vore/otie/red,
|
||||
"Chubby Red Otie" = /mob/living/simple_mob/vore/otie/red/chubby,//CHOMPedit: more mobs
|
||||
"Zorgoia" = /mob/living/simple_mob/vore/otie/zorgoia,//CHOMPedit: more mobs
|
||||
"Corrupt Hound" = /mob/living/simple_mob/vore/aggressive/corrupthound,
|
||||
"Corrupt Corrupt Hound" = /mob/living/simple_mob/vore/aggressive/corrupthound/prettyboi,
|
||||
"Hunter Giant Spider" = /mob/living/simple_mob/animal/giant_spider/hunter,
|
||||
@@ -104,6 +104,7 @@
|
||||
to_chat(M, "<span class='warning'>You may be a spooky space monster, but your role is to facilitate spooky space monster roleplay, not to fight the station and kill people. You can of course eat and/or digest people as you like if OOC prefs align, but this should be done as part of roleplay. If you intend to fight the station and kill people and such, you need permission from the staff team. GENERALLY, this role should avoid well populated areas. You’re a weird spooky space monster, so the bar is probably not where you’d want to go if you intend to survive. Of course, you’re welcome to try to make friends and roleplay how you will in this regard, but something to keep in mind.</span>")
|
||||
newPred.ckey = M.ckey
|
||||
newPred.visible_message("<span class='warning'>[newPred] emerges from somewhere!</span>")
|
||||
log_and_message_admins("successfully entered \a [src] and became a [newPred].")
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/ghost_pod/ghost_activated/maintpred/no_announce
|
||||
@@ -124,7 +125,7 @@
|
||||
|
||||
/obj/structure/ghost_pod/ghost_activated/morphspawn/create_occupant(var/mob/M)
|
||||
..()
|
||||
var/mob/living/simple_mob/vore/hostile/morph/newMorph = new /mob/living/simple_mob/vore/hostile/morph(get_turf(src))
|
||||
var/mob/living/simple_mob/vore/morph/newMorph = new /mob/living/simple_mob/vore/morph(get_turf(src))
|
||||
newMorph.voremob_loaded = TRUE //CHOMPedit: On-demand belly loading.
|
||||
newMorph.init_vore() //CHOMPedit: On-demand belly loading.
|
||||
if(M.mind)
|
||||
@@ -140,6 +141,7 @@
|
||||
|
||||
newMorph.ckey = M.ckey
|
||||
newMorph.visible_message("<span class='warning'>A morph appears to crawl out of somewhere.</span>")
|
||||
log_and_message_admins("successfully entered \a [src] and became a Morph.")
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/ghost_pod/ghost_activated/morphspawn/no_announce
|
||||
|
||||
@@ -41,6 +41,15 @@
|
||||
|
||||
handle_clothing_setup()
|
||||
|
||||
/obj/structure/ghost_pod/manual/survivor/trigger()
|
||||
. = ..()
|
||||
desc += "\n The Pod's stasis is broken!"
|
||||
visible_message(message = SPAN_WARNING("\The [src] hisses and blinks in a myriad of lights as its stasis ceases! \n \
|
||||
What or whoever lays beneath may yet stir once more, but their wounds may be too grevious... "),
|
||||
blind_message = SPAN_WARNING("You hear hissing from [src]!"),
|
||||
runemessage = "HISS")
|
||||
|
||||
|
||||
/obj/structure/ghost_pod/manual/survivor/proc/handle_clothing_setup()
|
||||
clothing_possibilities = list()
|
||||
|
||||
|
||||
36
code/game/objects/structures/props/altevian.dm
Normal file
36
code/game/objects/structures/props/altevian.dm
Normal file
@@ -0,0 +1,36 @@
|
||||
/obj/structure/prop/altevian_generator_wrecked
|
||||
name = "Converted High Energy Exchange Supplier Extractor"
|
||||
desc = "A take on the classic PACMAN reactors that are seen throughout the galaxy. The altevians have ripped apart the tech and seemed to of found a way to maximize the fuel usage one would see with this kind of process. \
|
||||
However, it is a lot bulkier and nearly impossible to break apart, but still can be moved if need be with special tools. This one appears to be totally wrecked though."
|
||||
icon = 'icons/obj/props/decor64x64.dmi'
|
||||
icon_state = "alteviangenwrecked"
|
||||
bound_width = 64
|
||||
bound_height = 64
|
||||
|
||||
/obj/structure/prop/altevian_jump_drive
|
||||
name = "Prosper-M Stellar Drive"
|
||||
desc = "A drive created by the Altevian Hegemony that focuses heavily on using Bluespace and other tactics to achieve a stable traversal between the stars. \
|
||||
This drive is commonly seen on their medium sized craft to help with logistical operations."
|
||||
icon = 'icons/obj/props/decor128x128.dmi'
|
||||
icon_state = "altevian_jump_drive"
|
||||
bound_width = 128
|
||||
bound_height = 128
|
||||
var/has_misc_overlay = TRUE
|
||||
|
||||
/obj/structure/prop/altevian_jump_drive/Initialize()
|
||||
.=..()
|
||||
update_icon()
|
||||
|
||||
/obj/structure/prop/altevian_jump_drive/update_icon()
|
||||
cut_overlays()
|
||||
if(has_misc_overlay)
|
||||
add_overlay("jump_drive_misc_anim_overlay")
|
||||
|
||||
/obj/structure/prop/altevian_jump_drive/active
|
||||
icon_state = "altevian_jump_drive-active"
|
||||
|
||||
/obj/structure/prop/altevian_jump_drive/wrecked
|
||||
icon_state = "altevian_jump_drive_wrecked"
|
||||
desc = "A drive created by the Altevian Hegemony that focuses heavily on using Bluespace and other tactics to achieve a stable traversal between the stars. \
|
||||
This drive is commonly seen on their medium sized craft to help with logistical operations. This one appears to be totally wrecked."
|
||||
has_misc_overlay = FALSE
|
||||
@@ -55,9 +55,9 @@ var/world_time_season
|
||||
/mob/living/simple_mob/vore/alienanimals/dustjumper = 20,
|
||||
/mob/living/simple_mob/vore/bee = 20,
|
||||
/mob/living/simple_mob/vore/horse/big = 5,
|
||||
/mob/living/simple_mob/animal/wolf = 5,
|
||||
/mob/living/simple_mob/animal/wolf/direwolf = 1,
|
||||
/mob/living/simple_mob/animal/wolf/direwolf/dog = 1,
|
||||
/mob/living/simple_mob/vore/wolf = 5,
|
||||
/mob/living/simple_mob/vore/wolf/direwolf = 1,
|
||||
/mob/living/simple_mob/vore/wolf/direwolf/dog = 1,
|
||||
/mob/living/simple_mob/vore/squirrel = 20
|
||||
)
|
||||
grass_types = list(
|
||||
@@ -97,7 +97,7 @@ var/world_time_season
|
||||
/mob/living/simple_mob/vore/horse/big = 5,
|
||||
/mob/living/simple_mob/vore/pakkun = 2,
|
||||
/mob/living/simple_mob/vore/fennix = 1,
|
||||
/mob/living/simple_mob/animal/wolf/direwolf/dog = 1,
|
||||
/mob/living/simple_mob/vore/wolf/direwolf/dog = 1,
|
||||
/mob/living/simple_mob/animal/passive/bird/parrot = 1,
|
||||
/mob/living/simple_mob/vore/squirrel = 20
|
||||
)
|
||||
@@ -123,9 +123,9 @@ var/world_time_season
|
||||
/mob/living/simple_mob/vore/horse/big = 10,
|
||||
/mob/living/simple_mob/vore/alienanimals/dustjumper = 20,
|
||||
/mob/living/simple_mob/vore/horse/big = 1,
|
||||
/mob/living/simple_mob/animal/wolf = 1,
|
||||
/mob/living/simple_mob/animal/wolf/direwolf = 1,
|
||||
/mob/living/simple_mob/animal/wolf/direwolf/dog = 1,
|
||||
/mob/living/simple_mob/vore/wolf = 1,
|
||||
/mob/living/simple_mob/vore/wolf/direwolf = 1,
|
||||
/mob/living/simple_mob/vore/wolf/direwolf/dog = 1,
|
||||
/mob/living/simple_mob/vore/squirrel = 20
|
||||
)
|
||||
grass_types = list(
|
||||
@@ -148,13 +148,13 @@ var/world_time_season
|
||||
/mob/living/simple_mob/vore/alienanimals/teppi = 10,
|
||||
/mob/living/simple_mob/vore/alienanimals/teppi/mutant = 1,
|
||||
/mob/living/simple_mob/vore/redpanda = 10,
|
||||
/mob/living/simple_mob/animal/wolf = 10,
|
||||
/mob/living/simple_mob/animal/wolf/direwolf = 1,
|
||||
/mob/living/simple_mob/animal/wolf/direwolf/dog = 1,
|
||||
/mob/living/simple_mob/otie/friendly = 2,
|
||||
/mob/living/simple_mob/otie/friendly/chubby = 1,
|
||||
/mob/living/simple_mob/otie/red/friendly = 1,
|
||||
/mob/living/simple_mob/otie/red/chubby = 1,
|
||||
/mob/living/simple_mob/vore/wolf = 10,
|
||||
/mob/living/simple_mob/vore/wolf/direwolf = 1,
|
||||
/mob/living/simple_mob/vore/wolf/direwolf/dog = 1,
|
||||
/mob/living/simple_mob/vore/otie/friendly = 2,
|
||||
/mob/living/simple_mob/vore/otie/friendly/chubby = 1,
|
||||
/mob/living/simple_mob/vore/otie/red/friendly = 1,
|
||||
/mob/living/simple_mob/vore/otie/red/chubby = 1,
|
||||
/mob/living/simple_mob/vore/squirrel = 20
|
||||
)
|
||||
if(prob(snow_chance))
|
||||
|
||||
@@ -307,10 +307,10 @@
|
||||
/datum/entity_narrate/proc/narrate_tgui_atom(atom/A, message as text)
|
||||
message = sanitize(message)
|
||||
if(tgui_narrate_mode && tgui_narrate_privacy)
|
||||
A.visible_message("<i><b>[A.name]</b> [message]</i>", range = 1)
|
||||
A.visible_message("<i><b>\The [A.name]</b> [message]</i>", range = 1)
|
||||
else if(tgui_narrate_mode && !tgui_narrate_privacy)
|
||||
A.visible_message("<b>[A.name]</b> [message]",)
|
||||
A.visible_message("<b>\The [A.name]</b> [message]",)
|
||||
else if(!tgui_narrate_mode && tgui_narrate_privacy)
|
||||
A.audible_message("<i><b>[A.name]</b> [message]</i>", hearing_distance = 1)
|
||||
A.audible_message("<i><b>\The [A.name]</b> [message]</i>", hearing_distance = 1)
|
||||
else if(!tgui_narrate_mode && !tgui_narrate_privacy)
|
||||
A.audible_message("<b>[A.name]</b> [message]")
|
||||
A.audible_message("<b>\The [A.name]</b> [message]")
|
||||
|
||||
141
code/modules/awaymissions/redgate.dm
Normal file
141
code/modules/awaymissions/redgate.dm
Normal file
@@ -0,0 +1,141 @@
|
||||
/obj/structure/redgate
|
||||
name = "redgate"
|
||||
desc = "It leads to someplace else!"
|
||||
icon = 'icons/obj/redgate.dmi'
|
||||
icon_state = "off"
|
||||
density = FALSE
|
||||
unacidable = TRUE
|
||||
anchored = TRUE
|
||||
pixel_x = -16
|
||||
|
||||
var/obj/structure/redgate/target
|
||||
var/list/exceptions = list(/obj/structure/ore_box) //made it a var so that GMs or map makers can selectively allow things to pass through
|
||||
|
||||
/obj/structure/redgate/Destroy()
|
||||
if(target)
|
||||
target.target = null
|
||||
target.toggle_portal()
|
||||
target = null
|
||||
set_light(0)
|
||||
|
||||
return ..()
|
||||
|
||||
/obj/structure/redgate/proc/teleport(var/mob/M as mob)
|
||||
var/keycheck = TRUE
|
||||
if (!istype(M,/mob/living)) //We only want mob/living, no bullets or mechs or AI eyes or items
|
||||
if(M.type in exceptions)
|
||||
keycheck = FALSE //we'll allow it
|
||||
else
|
||||
return
|
||||
if(keycheck) //exceptions probably won't have a ckey
|
||||
if(!M.ckey) //We only want players, no bringing the weird stuff on the other side back
|
||||
return
|
||||
|
||||
if(!target)
|
||||
toggle_portal()
|
||||
|
||||
var/turf/place = get_turf(target)
|
||||
var/possible_turfs = place.AdjacentTurfs()
|
||||
if(isemptylist(possible_turfs))
|
||||
to_chat(M, "<span class='notice'>Something blocks your way.</span>")
|
||||
return
|
||||
var/turf/temptarg = pick(possible_turfs)
|
||||
do_safe_teleport(M, temptarg, 0)
|
||||
|
||||
/obj/structure/redgate/proc/toggle_portal()
|
||||
if(target)
|
||||
icon_state = "on"
|
||||
density = TRUE
|
||||
plane = ABOVE_MOB_PLANE
|
||||
set_light(5, 0.75, "#da5656")
|
||||
else
|
||||
icon_state = "off"
|
||||
density = FALSE
|
||||
plane = OBJ_PLANE
|
||||
set_light(0)
|
||||
|
||||
/obj/structure/redgate/Bumped(mob/M as mob)
|
||||
src.teleport(M)
|
||||
return
|
||||
|
||||
/obj/structure/redgate/Crossed(mob/M as mob)
|
||||
src.teleport(M)
|
||||
return
|
||||
|
||||
/obj/structure/redgate/attack_hand(mob/M as mob)
|
||||
if(density)
|
||||
src.teleport(M)
|
||||
else
|
||||
if(!find_partner())
|
||||
to_chat(M, "<span class='warning'>The [src] remains off... seems like it doesn't have a destination.</span>")
|
||||
|
||||
|
||||
/obj/structure/redgate/attack_ghost(var/mob/observer/dead/user)
|
||||
if(target && user?.client?.holder)
|
||||
user.forceMove(get_turf(target))
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/structure/redgate/away/Initialize()
|
||||
. = ..()
|
||||
if(!find_partner())
|
||||
log_and_message_admins("An away redgate spawned but wasn't able to find a gateway to link to. If this appeared at roundstart, something has gone wrong, otherwise if you spawn another gate they should connect.")
|
||||
|
||||
/obj/structure/redgate/proc/find_partner()
|
||||
for(var/obj/structure/redgate/g in world)
|
||||
if(istype(g, /obj/structure/redgate))
|
||||
if(g.target)
|
||||
continue
|
||||
else if(g == src)
|
||||
continue
|
||||
else if(g.z in using_map.station_levels)
|
||||
target = g
|
||||
g.target = src
|
||||
toggle_portal()
|
||||
target.toggle_portal()
|
||||
break
|
||||
else if(g != src)
|
||||
target = g
|
||||
g.target = src
|
||||
toggle_portal()
|
||||
target.toggle_portal()
|
||||
break
|
||||
if(!target)
|
||||
return FALSE
|
||||
else
|
||||
return TRUE
|
||||
|
||||
/area/redgate
|
||||
name = "redgate"
|
||||
icon = 'icons/turf/areas_vr.dmi'
|
||||
icon_state = "redblacir"
|
||||
base_turf = /turf/simulated/mineral/floor/cave
|
||||
|
||||
/area/redgate/wilds
|
||||
name = "wilderness"
|
||||
|
||||
/area/redgate/structure
|
||||
name = "structure"
|
||||
icon_state = "redwhisqu"
|
||||
|
||||
/area/redgate/structure/powered
|
||||
requires_power = 0
|
||||
|
||||
/area/redgate/lit
|
||||
dynamic_lighting = 0
|
||||
|
||||
/area/redgate/structure/powered/teppi_ranch
|
||||
name = "ranch"
|
||||
|
||||
/area/redgate/structure/powered/teppi_ranch/barn
|
||||
name = "barn"
|
||||
|
||||
/obj/item/weapon/paper/teppiranch
|
||||
name = "elegantly scrawled note"
|
||||
info = {"<i>Goeleigh,<BR><BR>
|
||||
|
||||
This isn't how I wanted to give this message to you. They say that the light is coming this way, and we won't even know it's here until it's upon us. There's no way to know when it will arrive, so we can't really afford to wait around. My family has secured us a ride on a ship, and we'll be going to one of the rimward colonies. They say that they are making strides to build some new kind of gate there, something that will take us far from that light, somewhere safe. We can't really bring the animals, but perhaps you can make some arrangements for them.<BR><BR>
|
||||
|
||||
As soon as you read this, get yourself out of here and come find us. We left you enough money to make the trip in the usual spot. We'll be in the registry once we arrive. We're waiting for you.<BR><BR>
|
||||
|
||||
Yours, Medley</i>"}
|
||||
@@ -73,7 +73,7 @@
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/otie
|
||||
desc = "It is set to detonate in 5 seconds. It will release a otie won from the casino prize vendor!"
|
||||
name = "Casino Creature Container (Otie)"
|
||||
spawner_type = /mob/living/simple_mob/otie/friendly
|
||||
spawner_type = /mob/living/simple_mob/vore/otie/friendly
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/goldcrest
|
||||
desc = "It is set to detonate in 5 seconds. It will release a bird won from the casino prize vendor!"
|
||||
|
||||
@@ -24,6 +24,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
|
||||
"morph" = 1, // 18
|
||||
"corgi" = 1, // 19
|
||||
"cursed sword" = 1, // 20
|
||||
"Ship Survivor" = 1, // 21
|
||||
//VOREStation Add End
|
||||
)
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
pref.alternate_languages.len = (S.num_alternate_languages + pref.extra_languages) // Truncate to allowed length
|
||||
|
||||
// VOREStation Edit Start
|
||||
if(!(pref.preferred_language in pref.alternate_languages) || !pref.preferred_language) // Safety handling for if our preferred language is ever somehow removed from the character's list of langauges, or they don't have one set
|
||||
if((!(pref.preferred_language in pref.alternate_languages) && !(pref.preferred_language == LANGUAGE_GALCOM) && !(pref.preferred_language == S.language)) || !pref.preferred_language) // Safety handling for if our preferred language is ever somehow removed from the character's list of langauges, or they don't have one set
|
||||
pref.preferred_language = S.language // Reset to default, for safety
|
||||
// VOREStation Edit end
|
||||
|
||||
|
||||
@@ -252,3 +252,15 @@
|
||||
/datum/gear/shoes/circuitry
|
||||
display_name = "boots, circuitry (empty)"
|
||||
path = /obj/item/clothing/shoes/circuitry
|
||||
|
||||
/datum/gear/shoes/ballet
|
||||
display_name = "pointe shoes"
|
||||
path = /obj/item/clothing/shoes/ballet
|
||||
|
||||
/datum/gear/shoes/ballet/New()
|
||||
..()
|
||||
gear_tweaks += gear_tweak_free_color_choice
|
||||
|
||||
/datum/gear/shoes/halfmoon
|
||||
display_name = "half moon boots"
|
||||
path = /obj/item/clothing/shoes/boots/half_moon
|
||||
|
||||
@@ -676,3 +676,55 @@
|
||||
"Earth kimono" = /obj/item/clothing/suit/kimono/earth
|
||||
)
|
||||
gear_tweaks += new/datum/gear_tweak/path(kimonos)
|
||||
|
||||
//cropped hoodies
|
||||
/datum/gear/suit/roles/croppedhoodies
|
||||
display_name = "cropped hoodie selection"
|
||||
path = /obj/item/clothing/suit/storage/croppedhoodie
|
||||
|
||||
/datum/gear/suit/roles/croppedhoodies/New()
|
||||
..()
|
||||
var/list/croppedhoodies = list(
|
||||
"cropped hoodie"=/obj/item/clothing/suit/storage/croppedhoodie,
|
||||
"high cropped hoodie"=/obj/item/clothing/suit/storage/croppedhoodie/croppier,
|
||||
"very high cropped hoodie"=/obj/item/clothing/suit/storage/croppedhoodie/croppierer,
|
||||
"super high cropped hoodie"=/obj/item/clothing/suit/storage/croppedhoodie/croppiest
|
||||
)
|
||||
gear_tweaks += gear_tweak_free_color_choice
|
||||
gear_tweaks += new/datum/gear_tweak/path(croppedhoodies)
|
||||
|
||||
/datum/gear/suit/drive
|
||||
display_name = "relatable jacket"
|
||||
path = /obj/item/clothing/suit/storage/drive
|
||||
|
||||
/datum/gear/suit/motojacket
|
||||
display_name = "motorcycle jacket"
|
||||
path = /obj/item/clothing/suit/storage/toggle/moto_jacket
|
||||
|
||||
/datum/gear/suit/punkvest
|
||||
display_name = "punk vest"
|
||||
path = /obj/item/clothing/suit/storage/punkvest
|
||||
|
||||
/datum/gear/suit/raincoat
|
||||
display_name = "raincoat"
|
||||
path = /obj/item/clothing/suit/storage/hooded/raincoat
|
||||
|
||||
//hooded cloaks
|
||||
/datum/gear/suit/roles/hoodedcloaks
|
||||
display_name = "hooded cloak selection"
|
||||
path = /obj/item/clothing/suit/storage/hooded/cloak
|
||||
|
||||
/datum/gear/suit/roles/hoodedcloaks/New()
|
||||
..()
|
||||
var/list/hoodedcloaks = list(
|
||||
"hooded maroon cloak"=/obj/item/clothing/suit/storage/hooded/cloak,
|
||||
"hooded winter cloak"=/obj/item/clothing/suit/storage/hooded/cloak/winter,
|
||||
"hooded asymmetric cloak"=/obj/item/clothing/suit/storage/hooded/cloak/asymmetric,
|
||||
"hooded fancy cloak"=/obj/item/clothing/suit/storage/hooded/cloak/fancy
|
||||
)
|
||||
gear_tweaks += new/datum/gear_tweak/path(hoodedcloaks)
|
||||
|
||||
//nerdy shirt
|
||||
/datum/gear/suit/nerdshirt
|
||||
display_name = "nerdy shirt"
|
||||
path = /obj/item/clothing/suit/nerdshirt
|
||||
|
||||
@@ -117,10 +117,10 @@ Talon winter coat
|
||||
path = /obj/item/clothing/suit/armor/combat/crusader_explo/FM
|
||||
allowed_roles = list ("Paramedic")
|
||||
|
||||
//Atmos-coloured hazard vest
|
||||
display_name = "hazard vest, atmospherics"
|
||||
path = /obj/item/clothing/suit/storage/hazardvest/atmos
|
||||
allowed_roles = list("Chief Engineer","Atmospheric Technician", "Engineer")
|
||||
//Long fur coat
|
||||
/datum/gear/suit/russofurcoat
|
||||
display_name = "long fur coat"
|
||||
path = /obj/item/clothing/suit/storage/vest/hoscoat/russofurcoat
|
||||
|
||||
//Colorable Hoodie
|
||||
/datum/gear/suit/hoodie_vr
|
||||
|
||||
@@ -516,3 +516,73 @@
|
||||
/datum/gear/uniform/tropical_outfit/blue
|
||||
display_name = "tropical outfit, miami vice"
|
||||
path = /obj/item/clothing/under/tropical/blue
|
||||
|
||||
|
||||
//leotards
|
||||
/datum/gear/uniform/leotard
|
||||
display_name = "leotard, black"
|
||||
path = /obj/item/clothing/under/leotard
|
||||
|
||||
/datum/gear/uniform/leotardcolor
|
||||
display_name = "leotard, colorable"
|
||||
path = /obj/item/clothing/under/leotardcolor
|
||||
|
||||
/datum/gear/uniform/leotardcolor/New()
|
||||
..()
|
||||
gear_tweaks += gear_tweak_free_color_choice
|
||||
|
||||
//skinsuits
|
||||
/datum/gear/uniform/skinsuits
|
||||
display_name = "skinsuit selection"
|
||||
path = /obj/item/clothing/under/skinsuit
|
||||
|
||||
/datum/gear/uniform/skinsuits/New()
|
||||
..()
|
||||
var/list/skinsuits = list(
|
||||
"skinsuit"=/obj/item/clothing/under/skinsuit,
|
||||
"feminine skinsuit"=/obj/item/clothing/under/skinsuit/fem,
|
||||
"gray skinsuit"=/obj/item/clothing/under/skinsuit/gray,
|
||||
"feminine gray skinsuit"=/obj/item/clothing/under/skinsuit/fem/gray,
|
||||
"leotard skinsuit"=/obj/item/clothing/under/skinsuit/leotard,
|
||||
"feminine leotard skinsuit"=/obj/item/clothing/under/skinsuit/fem/leotard,
|
||||
"gray leotard skinsuit"=/obj/item/clothing/under/skinsuit/leotard/gray,
|
||||
"feminine gray leotard skinsuit"=/obj/item/clothing/under/skinsuit/fem/leotard/gray
|
||||
)
|
||||
gear_tweaks += list(new/datum/gear_tweak/path(skinsuits))
|
||||
|
||||
//baggy turtlenecks
|
||||
/datum/gear/uniform/turtlebaggys
|
||||
display_name = "baggy turtleneck selection"
|
||||
path = /obj/item/clothing/under/turtlebaggy
|
||||
|
||||
/datum/gear/uniform/turtlebaggys/New()
|
||||
..()
|
||||
var/list/turtlebaggys = list(
|
||||
"cream baggy turtleneck"=/obj/item/clothing/under/turtlebaggy,
|
||||
"feminine cream baggy turtleneck"=/obj/item/clothing/under/turtlebaggy/cream_fem,
|
||||
"purple baggy turtleneck"=/obj/item/clothing/under/turtlebaggy/purple,
|
||||
"feminine purple baggy turtleneck"=/obj/item/clothing/under/turtlebaggy/purple_fem,
|
||||
"red baggy turtleneck"=/obj/item/clothing/under/turtlebaggy/red,
|
||||
"feminine red baggy turtleneck"=/obj/item/clothing/under/turtlebaggy/red_fem,
|
||||
"blue baggy turtleneck"=/obj/item/clothing/under/turtlebaggy/blue,
|
||||
"feminine blue baggy turtleneck"=/obj/item/clothing/under/turtlebaggy/blue_fem,
|
||||
"green baggy turtleneck"=/obj/item/clothing/under/turtlebaggy/green,
|
||||
"feminine green baggy turtleneck"=/obj/item/clothing/under/turtlebaggy/green_fem,
|
||||
"black baggy turtleneck"=/obj/item/clothing/under/turtlebaggy/black,
|
||||
"feminine black baggy turtleneck"=/obj/item/clothing/under/turtlebaggy/black_fem
|
||||
)
|
||||
gear_tweaks += list(new/datum/gear_tweak/path(turtlebaggys))
|
||||
|
||||
//half-moon outfit
|
||||
/datum/gear/uniform/halfmoon
|
||||
display_name = "half moon outfit"
|
||||
path = /obj/item/clothing/under/half_moon
|
||||
|
||||
//fiend clothes
|
||||
/datum/gear/uniform/fiendsuit
|
||||
display_name = "fiendish suit"
|
||||
path = /obj/item/clothing/under/fiendsuit
|
||||
|
||||
/datum/gear/uniform/fienddress
|
||||
display_name = "fiendish dress"
|
||||
path = /obj/item/clothing/under/fienddress
|
||||
|
||||
@@ -109,3 +109,7 @@
|
||||
"Khaki cargo shorts" = /obj/item/clothing/under/shorts/cshorts/khaki
|
||||
)
|
||||
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(cargo_shorts))
|
||||
|
||||
/datum/gear/uniform/tacticool
|
||||
display_name = "Tacticool turtleneck"
|
||||
path = /obj/item/clothing/under/syndicate/tacticool/loadout
|
||||
@@ -790,7 +790,7 @@
|
||||
var/image/standing = ..()
|
||||
if(taurized) //Special snowflake var on suits
|
||||
standing.pixel_x = -16
|
||||
standing.layer = BODY_LAYER + 17 // 17 is above tail layer, so will not be covered by taurbody. TAIL_UPPER_LAYER +1
|
||||
standing.layer = BODY_LAYER + 18 // 18 is above tail layer, so will not be covered by taurbody. TAIL_UPPER_LAYER +1 //CHOMPEDIT - CHECK human/update_icons.dm BEFORE YOU CHANGE THIS.
|
||||
return standing
|
||||
|
||||
/obj/item/clothing/suit/apply_accessories(var/image/standing)
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
/obj/item/clothing/head/collectable/hardhat
|
||||
name = "collectable hard hat"
|
||||
desc = "WARNING! Offers no real protection, or luminosity, but it is damn fancy!"
|
||||
icon_state = "hardhat0_yellow"
|
||||
icon_state = "hardhat0_old_yellow"
|
||||
body_parts_covered = 0
|
||||
|
||||
/obj/item/clothing/head/collectable/HoS
|
||||
|
||||
@@ -80,6 +80,52 @@
|
||||
icon_state = "helmet_firefighter_ce"
|
||||
max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE + 10000
|
||||
|
||||
/obj/item/clothing/head/hardhat/old
|
||||
name = "classic hard hat"
|
||||
icon_state = "hardhat0_old_yellow"
|
||||
light_overlay = "hardhat_light_old"
|
||||
|
||||
/obj/item/clothing/head/hardhat/orange/old
|
||||
name = "classic orange hard hat"
|
||||
icon_state = "hardhat0_old_orange"
|
||||
light_overlay = "hardhat_light_old"
|
||||
|
||||
/obj/item/clothing/head/hardhat/white/old
|
||||
name = "classic sleek hard hat"
|
||||
icon_state = "hardhat0_old_white"
|
||||
light_overlay = "hardhat_light_old"
|
||||
|
||||
/obj/item/clothing/head/hardhat/dblue/old
|
||||
name = "classic blue hard hat"
|
||||
icon_state = "hardhat0_old_dblue"
|
||||
light_overlay = "hardhat_light_old"
|
||||
|
||||
/obj/item/clothing/head/hardhat/red/old
|
||||
name = "classic fire helmet"
|
||||
icon_state = "hardhat0_old_red"
|
||||
light_overlay = "hardhat_light_old"
|
||||
|
||||
/obj/item/clothing/head/hardhat/firefighter/old
|
||||
name = "classic firefighter helmet"
|
||||
icon_state = "helmet_firefighter_old"
|
||||
sprite_sheets = list(
|
||||
SPECIES_TAJARAN = 'icons/inventory/head/mob_tajaran.dmi'
|
||||
)
|
||||
|
||||
/obj/item/clothing/head/hardhat/firefighter/atmos/old
|
||||
name = "classic atmospheric firefighter helmet"
|
||||
icon_state = "atmos_fire_old"
|
||||
sprite_sheets = list(
|
||||
SPECIES_TAJARAN = 'icons/inventory/head/mob_tajaran.dmi'
|
||||
)
|
||||
|
||||
/obj/item/clothing/head/hardhat/firefighter/chief/old
|
||||
name = "classic chief firefighter helmet"
|
||||
icon_state = "helmet_firefighter_ce_old"
|
||||
sprite_sheets = list(
|
||||
SPECIES_TAJARAN = 'icons/inventory/head/mob_tajaran.dmi'
|
||||
)
|
||||
|
||||
/*
|
||||
* Ranger Hats
|
||||
*/
|
||||
|
||||
@@ -216,3 +216,30 @@
|
||||
icon = 'icons/inventory/head/item_vr.dmi'
|
||||
icon_override = 'icons/inventory/head/mob_vr.dmi'
|
||||
icon_state = "hood_plain"
|
||||
|
||||
/obj/item/clothing/head/hood/raincoat
|
||||
name = "raincoat hood"
|
||||
desc = "A hood attached to a raincoat."
|
||||
icon_state = "raincoat"
|
||||
|
||||
//hooded cloak hoods
|
||||
/obj/item/clothing/head/hood/cloak
|
||||
name = "maroon cloak hood"
|
||||
desc = "A hood attached to a maroon cloak."
|
||||
icon_state = "maroon_cloakhood"
|
||||
flags_inv = HIDEEARS|BLOCKHAIR
|
||||
|
||||
/obj/item/clothing/head/hood/cloak/winter
|
||||
name = "winter cloak hood"
|
||||
desc = "A hood attached to a winter cloak."
|
||||
icon_state = "winter_cloakhood"
|
||||
|
||||
/obj/item/clothing/head/hood/cloak/asymmetric
|
||||
name = "asymmetric cloak hood"
|
||||
desc = "A hood attached to an asymmetric cloak."
|
||||
icon_state = "royalist_cloakhood"
|
||||
|
||||
/obj/item/clothing/head/hood/cloak/fancy
|
||||
name = "fancy cloak hood"
|
||||
desc = "A hood attached to a fancy cloak."
|
||||
icon_state = "hb_cloakhood"
|
||||
|
||||
@@ -252,3 +252,8 @@
|
||||
name = "yellow performer's boots"
|
||||
desc = "These boots were made for dancing."
|
||||
icon_state = "ysing"
|
||||
|
||||
/obj/item/clothing/shoes/boots/half_moon
|
||||
name = "half moon boots"
|
||||
desc = "Flexible and tight, these boots ensure the wearer will be leaving a solid impression without sacrificing mobility."
|
||||
icon_state = "half_moon"
|
||||
|
||||
@@ -282,3 +282,9 @@
|
||||
footstep++
|
||||
|
||||
// CHOMPedit end.
|
||||
|
||||
/obj/item/clothing/shoes/ballet
|
||||
name = "pointe shoes"
|
||||
desc = "These shoes feature long lace straps and flattened off toes. Great for the most elegant of dances!"
|
||||
icon_state = "ballet"
|
||||
item_state = "ballet"
|
||||
|
||||
@@ -393,3 +393,41 @@
|
||||
desc = "For those who REALLY love their toasters."
|
||||
icon_state = "techpriest"
|
||||
hoodtype = /obj/item/clothing/head/hood/techpriest
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/raincoat
|
||||
name = "raincoat"
|
||||
desc = "A thin, opaque coat meant to protect you from all sorts of rain. Preferred by outdoorsmen and janitors alike across the rift. Of course, the only type of fluids you'd like to protect yourself from around this place don't rain down from the sky. Usually. Comes with a hood!"
|
||||
icon_state = "raincoat"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS
|
||||
flags_inv = HIDEHOLSTER
|
||||
hoodtype = /obj/item/clothing/head/hood/raincoat
|
||||
allowed = list(/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight, /obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes,
|
||||
/obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask, /obj/item/device/suit_cooling_unit)
|
||||
|
||||
|
||||
//hooded cloaks
|
||||
/obj/item/clothing/suit/storage/hooded/cloak
|
||||
name = "hooded maroon cloak"
|
||||
desc = "A simple maroon colored cloak."
|
||||
icon_state = "maroon_cloak"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
hoodtype = /obj/item/clothing/head/hood/cloak
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/cloak/winter
|
||||
name = "hooded winter cloak"
|
||||
desc = "A simple wool cloak used during winter."
|
||||
icon_state = "winter_cloak"
|
||||
hoodtype = /obj/item/clothing/head/hood/cloak/winter
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/cloak/asymmetric
|
||||
name = "hooded asymmetric cloak"
|
||||
desc = "A blue hooded cloak with an asymmetric design."
|
||||
icon_state = "asymmetric_cloak"
|
||||
hoodtype = /obj/item/clothing/head/hood/cloak/asymmetric
|
||||
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/cloak/fancy
|
||||
name = "hooded fancy cloak"
|
||||
desc = "A fancy black hooded cloak."
|
||||
icon_state = "hb_cloak"
|
||||
hoodtype = /obj/item/clothing/head/hood/cloak/fancy
|
||||
|
||||
@@ -321,6 +321,12 @@
|
||||
body_parts_covered = UPPER_TORSO|ARMS
|
||||
flags_inv = HIDETIE|HIDEHOLSTER
|
||||
|
||||
//nerdy shirt
|
||||
/obj/item/clothing/suit/nerdshirt
|
||||
name = "nerdy shirt"
|
||||
desc = "A comfy white t-shirt with a picture of a cartoon hedgehog on it. Although clean, it still seems like the wearer should be embarrassed for owning it."
|
||||
icon_state = "nerdshirt"
|
||||
|
||||
/*
|
||||
* Kimonos
|
||||
*/
|
||||
@@ -1050,3 +1056,45 @@
|
||||
body_parts_covered = FEET|LOWER_TORSO|UPPER_TORSO|LEGS
|
||||
flags_inv = HIDESHOES|HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER
|
||||
item_state_slots = list(slot_r_hand_str = "green_labcoat", slot_l_hand_str = "green_labcoat")
|
||||
|
||||
//Cropped hoodies
|
||||
/obj/item/clothing/suit/storage/croppedhoodie
|
||||
name = "cropped hoodie"
|
||||
desc = "This style of hoodie is sometimes worn by those who cannot fit, or choose not to hide their delectable bellies under the full, soft confines of a hoodie. The hood is cosmetic, and non-functional."
|
||||
icon_state = "croppedhoodie"
|
||||
body_parts_covered = UPPER_TORSO|ARMS
|
||||
|
||||
/obj/item/clothing/suit/storage/croppedhoodie/croppier
|
||||
name = "high cropped hoodie"
|
||||
desc = "This style of hoodie is worn by those that wish to display ample amounts of midriff, or never threw out their childhood apparel. The hood is cosmetic, and non-functional."
|
||||
icon_state = "croppierhoodie"
|
||||
|
||||
/obj/item/clothing/suit/storage/croppedhoodie/croppierer
|
||||
name = "very high cropped hoodie"
|
||||
desc = "This style of hoodie is worn by those that wish to display ample amounts of underboob, and love the breeze. Comes with a free 'functionally_nude' sticker. The hood is cosmetic, and non-functional."
|
||||
icon_state = "highcrophoodie"
|
||||
|
||||
/obj/item/clothing/suit/storage/croppedhoodie/croppiest
|
||||
name = "super cropped hoodie"
|
||||
desc = "This style of hoodie is worn by those that have little respect for the concept of a hoodie. Often seen in nightclubs and your daughter's wardrdobe. The hood is cosmetic, and non-functional."
|
||||
icon_state = "supercroppedhoodie"
|
||||
|
||||
//Drive jacket
|
||||
/obj/item/clothing/suit/storage/drive
|
||||
name = "relatable jacket"
|
||||
desc = "An all white jacket with a shine. It seems easy to identify with the wearer."
|
||||
icon_state = "drivejacket"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
|
||||
/obj/item/clothing/suit/storage/toggle/moto_jacket
|
||||
name = "motorcycle jacket"
|
||||
desc = "A recreation of one of the famous Sol-based biwheeled driver assemblies. Patches on the back denote an AI-generated 'biker logo'. It looks unintelligible."
|
||||
icon_state = "motojacket"
|
||||
allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight, /obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask) //same as leather jackets
|
||||
body_parts_covered = UPPER_TORSO|ARMS
|
||||
|
||||
/obj/item/clothing/suit/storage/punkvest
|
||||
name = "punk vest"
|
||||
desc = "For the spiritual rebels that nevertheless wish to conform to standard goth trends. You're totally showing them your anti-authority spunk."
|
||||
icon_state = "punkvest"
|
||||
body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO
|
||||
|
||||
@@ -1076,6 +1076,21 @@
|
||||
desc = "A rather skimpy cow patterned swimsuit."
|
||||
icon_state = "swim_cow"
|
||||
|
||||
/obj/item/clothing/under/swimsuit/highclass
|
||||
name = "high class swimsuit"
|
||||
desc = "An elegant swimsuit with a white bikini top and black bikini bottom. Thin black silk drapes down the back and goes to the upper thighs, and authentic gold rings hold the top together at the bust and back."
|
||||
icon_state = "swim_highclass"
|
||||
|
||||
/obj/item/clothing/under/swimsuit/risque
|
||||
name = "risque swimsuit"
|
||||
desc = "This fits a bit too snug in all the right places. Comes with a collar, for inscrutable reasons."
|
||||
icon_state = "swim_risque"
|
||||
|
||||
/obj/item/clothing/under/swimsuit/streamlined
|
||||
name = "streamlined swimsuit"
|
||||
desc = "An all white one-piece that maintains modesty without sacrificing class."
|
||||
icon_state = "swim_stream"
|
||||
|
||||
/obj/item/clothing/under/wetsuit
|
||||
name = "wetsuit"
|
||||
desc = "For when you need to scuba dive your way into an enemy base."
|
||||
@@ -1524,3 +1539,132 @@
|
||||
name = "green crop-top christmas suit"
|
||||
desc = "A simple green christmas suit that doesn't quite looks like Mrs Claus'. Smells minty!"
|
||||
icon_state = "christmascroppedgreen"
|
||||
|
||||
//leotards
|
||||
/obj/item/clothing/under/leotard
|
||||
name = "black leotard"
|
||||
desc = "A black leotard with a piece of semi-transparent cloth near the bust. Perfect for showing off cleavage. Bunny ears not included."
|
||||
icon_state = "leotard"
|
||||
|
||||
/obj/item/clothing/under/leotardcolor
|
||||
name = "colored leotard"
|
||||
desc = "A colorable leotard with a piece of semi-transparent cloth near the bust. Perfect for showing off cleavage. Bunny ears not included."
|
||||
icon_state = "leotard_color"
|
||||
|
||||
//skinsuits
|
||||
/obj/item/clothing/under/skinsuit
|
||||
name = "skinsuit"
|
||||
desc = "Similar to other form-fitting latex bodysuits in design and function, skinsuits typically feature integrated hardpoints around common wear areas."
|
||||
icon_state = "skinsuit"
|
||||
|
||||
/obj/item/clothing/under/skinsuit/gray
|
||||
name = "gray skinsuit"
|
||||
icon_state = "skinsuit_g"
|
||||
|
||||
/obj/item/clothing/under/skinsuit/leotard
|
||||
name = "leotard skinsuit"
|
||||
desc = "The skinsuit's leotard variant has long since eclipsed its initial function as a breathable undersuit for submersible hardsuits. Although still utilized in this role, it has become rather fashionable to wear outside of deep water operations."
|
||||
icon_state = "skinsuitleo"
|
||||
|
||||
|
||||
/obj/item/clothing/under/skinsuit/leotard/gray
|
||||
name = "gray leotard skinsuit"
|
||||
icon_state = "skinsuitleo_g"
|
||||
|
||||
/obj/item/clothing/under/skinsuit/fem
|
||||
name = "feminine skinsuit"
|
||||
desc = "Similar to other form-fitting latex bodysuits in design and function, skinsuits typically feature integrated hardpoints around common wear areas."
|
||||
icon_state = "skinsuitfem"
|
||||
|
||||
/obj/item/clothing/under/skinsuit/fem/gray
|
||||
name = "feminine gray skinsuit"
|
||||
icon_state = "skinsuitfem_g"
|
||||
|
||||
/obj/item/clothing/under/skinsuit/fem/leotard
|
||||
name = "feminine leotard skinsuit"
|
||||
desc = "The skinsuit's leotard variant has long since eclipsed its initial function as a breathable undersuit for submersible hardsuits. Although still utilized in this role, it has become rather fashionable to wear outside of deep water operations."
|
||||
icon_state = "skinsuitfemleo"
|
||||
|
||||
/obj/item/clothing/under/skinsuit/fem/leotard/gray
|
||||
name = "feminine gray leotard skinsuit"
|
||||
icon_state = "skinsuitfemleo_g"
|
||||
|
||||
//baggy turtlenecks
|
||||
/obj/item/clothing/under/turtlebaggy
|
||||
name = "cream baggy turtleneck (cream)"
|
||||
desc = "A cozy knit turtleneck. It's too baggy and comfortable to be tactical."
|
||||
icon_state = "bb_turtle"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
|
||||
|
||||
/obj/item/clothing/under/turtlebaggy/cream_fem
|
||||
name = "feminine cream baggy turtleneck"
|
||||
icon_state = "bb_turtle_fem"
|
||||
|
||||
|
||||
/obj/item/clothing/under/turtlebaggy/purple
|
||||
name = "purple baggy turtleneck"
|
||||
icon_state = "bb_turtlepur"
|
||||
|
||||
|
||||
/obj/item/clothing/under/turtlebaggy/purple_fem
|
||||
name = "feminine purple baggy turtleneck"
|
||||
icon_state = "bb_turtlepur_fem"
|
||||
|
||||
|
||||
/obj/item/clothing/under/turtlebaggy/red
|
||||
name = "red baggy turtleneck"
|
||||
icon_state = "bb_turtlered"
|
||||
|
||||
|
||||
/obj/item/clothing/under/turtlebaggy/red_fem
|
||||
name = "feminine red baggy turtleneck"
|
||||
icon_state = "bb_turtlered_fem"
|
||||
|
||||
|
||||
/obj/item/clothing/under/turtlebaggy/blue
|
||||
name = "blue baggy turtleneck"
|
||||
icon_state = "bb_turtleblu"
|
||||
|
||||
|
||||
/obj/item/clothing/under/turtlebaggy/blue_fem
|
||||
name = "feminine blue baggy turtleneck"
|
||||
icon_state = "bb_turtleblu_fem"
|
||||
|
||||
|
||||
/obj/item/clothing/under/turtlebaggy/green
|
||||
name = "green baggy turtleneck"
|
||||
icon_state = "bb_turtlegrn"
|
||||
|
||||
|
||||
/obj/item/clothing/under/turtlebaggy/green_fem
|
||||
name = "feminine green baggy turtleneck"
|
||||
icon_state = "bb_turtlegrn_fem"
|
||||
|
||||
|
||||
/obj/item/clothing/under/turtlebaggy/black
|
||||
name = "black baggy turtleneck"
|
||||
icon_state = "bb_turtleblk"
|
||||
|
||||
|
||||
/obj/item/clothing/under/turtlebaggy/black_fem
|
||||
name = "feminine black baggy turtleneck"
|
||||
icon_state = "bb_turtleblk_fem"
|
||||
|
||||
//half-moon outfit
|
||||
/obj/item/clothing/under/half_moon
|
||||
name = "half moon outfit"
|
||||
desc = "This eminently fashionable outfit consists of a tailored latex leotard and daringly cut white shorts. Paired with plunging off-color stockings, it's to die for."
|
||||
icon_state = "half_moon"
|
||||
|
||||
//fiend clothes
|
||||
/obj/item/clothing/under/fiendsuit
|
||||
name = "fiendish suit"
|
||||
desc = "A red and black suit befitting someone from the dark pits themselves… Or someone way too edgy."
|
||||
icon_state = "fiendsuit"
|
||||
|
||||
|
||||
/obj/item/clothing/under/fienddress
|
||||
name = "fiendish dress"
|
||||
desc = "A red and black dress befitting someone from the dark pits themselves… Or someone way too edgy."
|
||||
icon_state = "fienddress"
|
||||
|
||||
3
code/modules/clothing/under/syndicate_ch.dm
Normal file
3
code/modules/clothing/under/syndicate_ch.dm
Normal file
@@ -0,0 +1,3 @@
|
||||
/obj/item/clothing/under/syndicate/tacticool/loadout //loadout tacticool option. No armor, but has sensors
|
||||
has_sensor = 1
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
@@ -275,14 +275,21 @@
|
||||
desc = "Fueled by your inner inadequacy!"
|
||||
description_fluff = "Provided by NanoMed, SweatMAX promises solutions to all of your problems. Premium gains at premium prices. Resale of SweatMAX products is a violation of NanoTrasen guidelines."
|
||||
icon_state = "fitness"
|
||||
//VOREStation Edit Start
|
||||
products = list(/obj/item/weapon/reagent_containers/food/drinks/smallmilk = 16,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/smallchocmilk = 16,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle = 10,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/proteinshake = 8,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask = 8,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein_powder = 16,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein_powder/vanilla = 16,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein_powder/banana = 16,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein_powder/chocolate = 16,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein_powder/strawberry = 16,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar = 16,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/fruitbar = 16,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/liquidfood = 8,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/liquidvitamin = 8,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/liquidprotein = 8,
|
||||
/obj/item/weapon/reagent_containers/pill/diet = 8,
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/glucose = 5, //VOREStation Removal, //CHOMPedit nah
|
||||
/obj/item/weapon/towel/random = 8,
|
||||
@@ -290,18 +297,27 @@
|
||||
|
||||
prices = list(/obj/item/weapon/reagent_containers/food/drinks/smallmilk = 3,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/smallchocmilk = 3,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle = 2,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/proteinshake = 15,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask = 1,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein_powder = 5,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein_powder/vanilla = 5,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein_powder/banana = 5,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein_powder/chocolate = 5,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein_powder/strawberry = 5,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar = 5,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/fruitbar = 5,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/liquidfood = 5,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/liquidvitamin = 5,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/liquidprotein = 5,
|
||||
/obj/item/weapon/reagent_containers/pill/diet = 25,
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/glucose = 5, //CHOMPedit nah
|
||||
/obj/item/weapon/towel/random = 20,
|
||||
/obj/item/toy/tennis = 15)
|
||||
//VOREStation Edit End
|
||||
|
||||
contraband = list(/obj/item/weapon/reagent_containers/syringe/steroid = 4, /obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/proteanshake = 2, /obj/item/toy/baseball = 2) // VOREStation Add - Slurpable blobs.
|
||||
contraband = list(/obj/item/weapon/reagent_containers/syringe/steroid = 4,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/proteanshake = 2,
|
||||
/obj/item/toy/baseball = 2) // VOREStation Add - Slurpable blobs.
|
||||
|
||||
/obj/machinery/vending/cart
|
||||
name = "PTech"
|
||||
|
||||
@@ -239,11 +239,6 @@
|
||||
|
||||
// Food Machines (for event/away maps)
|
||||
|
||||
/obj/machinery/vending/fitness/New()
|
||||
products += list(/obj/item/weapon/reagent_containers/food/snacks/liquidprotein = 8)
|
||||
prices += list(/obj/item/weapon/reagent_containers/food/snacks/liquidprotein = 5)
|
||||
..()
|
||||
|
||||
/obj/machinery/vending/blood
|
||||
name = "Blood-Onator"
|
||||
desc = "Freezer-vendor for storage and quick dispensing of blood packs"
|
||||
@@ -951,6 +946,9 @@
|
||||
/obj/item/weapon/storage/box/fluff/swimsuit/security = 5,
|
||||
/obj/item/weapon/storage/box/fluff/swimsuit/medical = 5,
|
||||
/obj/item/weapon/storage/box/fluff/swimsuit/cowbikini = 5,
|
||||
/obj/item/weapon/storage/box/fluff/swimsuit/highclass = 5,
|
||||
/obj/item/weapon/storage/box/fluff/swimsuit/risque = 5,
|
||||
/obj/item/weapon/storage/box/fluff/swimsuit/streamlined = 5,
|
||||
/obj/item/clothing/under/utility = 5,
|
||||
/obj/item/clothing/under/utility/grey = 5,
|
||||
/obj/item/clothing/under/utility/blue = 5,
|
||||
@@ -1126,6 +1124,9 @@
|
||||
/obj/item/weapon/storage/box/fluff/swimsuit/security = 50,
|
||||
/obj/item/weapon/storage/box/fluff/swimsuit/medical = 50,
|
||||
/obj/item/weapon/storage/box/fluff/swimsuit/cowbikini = 50,
|
||||
/obj/item/weapon/storage/box/fluff/swimsuit/highclass = 50,
|
||||
/obj/item/weapon/storage/box/fluff/swimsuit/risque = 50,
|
||||
/obj/item/weapon/storage/box/fluff/swimsuit/streamlined = 50,
|
||||
/obj/item/clothing/under/utility = 50,
|
||||
/obj/item/clothing/under/utility/grey = 50,
|
||||
/obj/item/clothing/under/utility/blue = 50,
|
||||
@@ -2195,6 +2196,9 @@
|
||||
/obj/item/weapon/storage/box/fluff/swimsuit/security = 5,
|
||||
/obj/item/weapon/storage/box/fluff/swimsuit/medical = 5,
|
||||
/obj/item/weapon/storage/box/fluff/swimsuit/cowbikini = 5,
|
||||
/obj/item/weapon/storage/box/fluff/swimsuit/highclass = 5,
|
||||
/obj/item/weapon/storage/box/fluff/swimsuit/risque = 5,
|
||||
/obj/item/weapon/storage/box/fluff/swimsuit/streamlined = 5,
|
||||
/obj/item/clothing/under/utility = 5,
|
||||
/obj/item/clothing/under/utility/grey = 5,
|
||||
/obj/item/clothing/under/utility/blue = 5,
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
endWhen = worst_case_end()
|
||||
|
||||
/datum/event/meteor_wave/proc/get_wave_size()
|
||||
return severity * rand(2, 3)
|
||||
return severity * rand(2,4) //CHOMP Edit: Increase maximum multipler from 3 to 4.
|
||||
|
||||
/datum/event/meteor_wave/proc/worst_case_end()
|
||||
return activeFor + ((30 / severity) * waves) + 10
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
kill()
|
||||
return
|
||||
announceWhen = rand(announceWhen, announceWhen + 60)
|
||||
spawncount = rand(6 * severity, 14 * severity) //spiderlings only have a 50% chance to grow big and strong //CHOMP Edit: old: 2/4 new: 6/14
|
||||
spawncount = rand(4 * severity, 10 * severity) //spiderlings only have a 50% chance to grow big and strong //CHOMP Edit: old: 2/4 new: 6/14 new: 4/10
|
||||
sent_spiders_to_station = 0
|
||||
|
||||
/datum/event/spider_infestation/announce()
|
||||
@@ -33,6 +33,13 @@
|
||||
|
||||
while((spawncount >= 1) && vents.len)
|
||||
var/obj/vent = pick(vents)
|
||||
new /obj/effect/spider/spiderling(vent.loc) //VOREStation Edit - No nurses //Oh my JESUS CHRIST, this slipped past me. Literally no nurses. Well guess what, nurses are back.
|
||||
//CHOMPEDIT START adding spider EGGS to the possible spawns instead of singular spiderling spawns.
|
||||
var/spawn_spiderlings = pickweight(list(
|
||||
/obj/effect/spider/spiderling = 85,
|
||||
/obj/effect/spider/eggcluster = 10,
|
||||
/obj/effect/spider/eggcluster/royal = 5
|
||||
))
|
||||
new spawn_spiderlings(vent.loc) //VOREStation Edit - No nurses //Oh my JESUS CHRIST, this slipped past me. Literally no nurses. Well guess what, nurses are back.
|
||||
//CHOMPEDIT END
|
||||
vents -= vent
|
||||
spawncount--
|
||||
|
||||
@@ -17,10 +17,10 @@
|
||||
return
|
||||
|
||||
else // They're outside and hopefully on a planet.
|
||||
var/datum/planet/P = SSplanets.z_to_planet[T.z]
|
||||
if(!P)
|
||||
if(!(T.z in SSplanets.z_to_planet) || !(SSplanets.z_to_planet[T.z]))
|
||||
to_chat(usr, span("warning", "You appear to be outside, but not on a planet... Something is wrong."))
|
||||
return
|
||||
var/datum/planet/P = SSplanets.z_to_planet[T.z]
|
||||
|
||||
var/datum/weather_holder/WH = P.weather_holder
|
||||
|
||||
|
||||
@@ -6,11 +6,12 @@
|
||||
base_icon = "fitness-cup"
|
||||
volume = 100
|
||||
matter = list(MAT_PLASTIC = 2000)
|
||||
filling_states = list(10,20,30,40,50,60,70,80,90,100)
|
||||
filling_states = list(10,20,30,40,50,60,70,80)
|
||||
possible_transfer_amounts = list(5, 10, 15, 25)
|
||||
rim_pos = null // no fruit slices
|
||||
var/lid_color = "black"
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/Initialize()
|
||||
. = ..()
|
||||
lid_color = pick("black", "red", "blue")
|
||||
@@ -19,19 +20,22 @@
|
||||
/obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/update_icon()
|
||||
..()
|
||||
icon_state = "[base_icon]_[lid_color]"
|
||||
cut_overlays()
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/proteinshake
|
||||
name = "protein shake"
|
||||
icon = 'icons/obj/drinks.dmi'
|
||||
icon_state = "protein_shake"
|
||||
base_icon = "protein_shake"
|
||||
desc = "NanoTrasen brand pre-done pre-workout mix. Also perfect for an empty stomach."
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/proteinshake/Initialize()
|
||||
. = ..()
|
||||
cut_overlays()
|
||||
reagents.add_reagent("nutriment", 30)
|
||||
reagents.add_reagent("iron", 10)
|
||||
reagents.add_reagent("protein", 35)
|
||||
reagents.add_reagent("water", 25)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/proteinshake/update_icon()
|
||||
..()
|
||||
// And now set half the stuff back because our name shouldn't change
|
||||
name = initial(name)
|
||||
desc = initial(desc)
|
||||
return
|
||||
@@ -1,13 +1,15 @@
|
||||
/obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/proteanshake
|
||||
name = "protean shake"
|
||||
icon = 'icons/obj/drinks.dmi'
|
||||
icon_state = "protean_shake"
|
||||
base_icon = "protean_shake"
|
||||
desc = "A strangely unlabeled, unbranded pre-workout drink carton."
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/proteanshake/Initialize()
|
||||
. = ..()
|
||||
cut_overlays()
|
||||
reagents.add_reagent("liquid_protean", 50)
|
||||
reagents.add_reagent("nutriment", 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/proteanshake/update_icon()
|
||||
..()
|
||||
// And now set half the stuff back because our name shouldn't change
|
||||
name = initial(name)
|
||||
desc = initial(desc)
|
||||
return
|
||||
@@ -526,3 +526,48 @@
|
||||
/obj/item/weapon/reagent_containers/food/condiment/spacespice/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("spacespice", 40)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein_powder
|
||||
name = "protein powder packet"
|
||||
desc = "Contains 5u of regular protein powder. Mix with 25u of water and enjoy."
|
||||
icon_state = "protein_powder1"
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein_powder/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("protein_powder", 5)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein_powder/vanilla
|
||||
name = "vanilla protein powder packet"
|
||||
desc = "Contains 5u of vanilla flavored protein powder. Mix with 25u of water and enjoy."
|
||||
icon_state = "protein_powder2"
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein_powder/vanilla/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("vanilla_protein_powder", 5)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein_powder/banana
|
||||
name = "banana protein powder packet"
|
||||
desc = "Contains 5u of banana flavored protein powder. Mix with 25u of water and enjoy."
|
||||
icon_state = "protein_powder3"
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein_powder/banana/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("banana_protein_powder", 5)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein_powder/chocolate
|
||||
name = "chocolate protein powder packet"
|
||||
desc = "Contains 5u of chocolate flavored protein powder. Mix with 25u of water and enjoy."
|
||||
icon_state = "protein_powder4"
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein_powder/chocolate/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("chocolate_protein_powder", 5)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein_powder/strawberry
|
||||
name = "strawberry protein powder packet"
|
||||
desc = "Contains 5u of strawberry flavored protein powder. Mix with 25u of water and enjoy."
|
||||
icon_state = "protein_powder5"
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/protein_powder/strawberry/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("strawberry_protein_powder", 5)
|
||||
@@ -4784,8 +4784,8 @@
|
||||
var/composition_reagent
|
||||
var/composition_reagent_quantity
|
||||
|
||||
/mob/living/simple_mob/adultslime
|
||||
composition_reagent = "slimejelly"
|
||||
///mob/living/simple_mob/adultslime //The literal only thing in the game that uses this is commented out, so I comment out this too
|
||||
// composition_reagent = "slimejelly"
|
||||
|
||||
/mob/living/carbon/alien/diona
|
||||
composition_reagent = "nutriment"//Dionae are plants, so eating them doesn't give animal protein
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
icon_state = "fakesun"
|
||||
invisibility = INVISIBILITY_ABSTRACT
|
||||
var/atom/movable/sun_visuals/sun
|
||||
var/family = null //Allows multipe maps that are THEORETICALLY connected to use the same settings when not in a connected Z stack
|
||||
var/shared_settings //Automatically set if using the family var
|
||||
var/static/world_suns = list() //List of all the fake_suns in the world, used for checking for family members
|
||||
|
||||
var/list/possible_light_setups = list(
|
||||
list(
|
||||
@@ -78,13 +81,26 @@
|
||||
|
||||
)
|
||||
|
||||
/obj/effect/fake_sun/New(loc, ...)
|
||||
. = ..()
|
||||
world_suns += src
|
||||
|
||||
/obj/effect/fake_sun/Initialize()
|
||||
..()
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/effect/fake_sun/LateInitialize()
|
||||
. = ..()
|
||||
var/list/choice = pick(possible_light_setups)
|
||||
var/list/choice
|
||||
if(family) //Allows one to make multiple fake_suns to use the same settings
|
||||
for(var/obj/effect/fake_sun/l in world_suns) //check all the suns that exist
|
||||
if(l.family == family && l.shared_settings) //do you have settings we need?
|
||||
choice = l.shared_settings
|
||||
break
|
||||
if(!choice) //We didn't get anything from our family, let's pick something
|
||||
choice = pick(possible_light_setups)
|
||||
if(family) //Let's pass our settings on to our family
|
||||
shared_settings = choice
|
||||
if(choice["brightness"] <= LIGHTING_SOFT_THRESHOLD) // dark!
|
||||
return
|
||||
|
||||
|
||||
@@ -54,10 +54,10 @@
|
||||
EQUIPMENT("Defense Equipment - Plasteel Machete", /obj/item/weapon/material/knife/machete, 50),
|
||||
EQUIPMENT("Defense Equipment - Razor Drone Deployer", /obj/item/weapon/grenade/spawnergrenade/manhacks/station/locked, 100),
|
||||
EQUIPMENT("Defense Equipment - Sentry Drone Deployer", /obj/item/weapon/grenade/spawnergrenade/ward, 150),
|
||||
EQUIPMENT("Defense Equipment - Marksman Frontier Phaser", /obj/item/weapon/gun/energy/locked/frontier/rifle, 1500), //CHOMPADD
|
||||
EQUIPMENT("Defense Equipment - Frontier Carbine", /obj/item/weapon/gun/energy/locked/frontier/carbine, 1500), //CHOMPEDIT
|
||||
EQUIPMENT("Defense Equipment - Frontier Phaser", /obj/item/weapon/gun/energy/locked/frontier, 1200), //CHOMPADD
|
||||
EQUIPMENT("Defense Equipment - Holdout Frontier Phaser", /obj/item/weapon/gun/energy/locked/frontier/holdout, 700), //CHOMPADD
|
||||
EQUIPMENT("Defense Equipment - Marksman Frontier Phaser", /obj/item/weapon/gun/energy/locked/frontier/rifle, 800), //CHOMPADD
|
||||
EQUIPMENT("Defense Equipment - Frontier Carbine", /obj/item/weapon/gun/energy/locked/frontier/carbine, 800), //CHOMPEDIT
|
||||
EQUIPMENT("Defense Equipment - Frontier Phaser", /obj/item/weapon/gun/energy/locked/frontier, 600), //CHOMPADD
|
||||
EQUIPMENT("Defense Equipment - Holdout Frontier Phaser", /obj/item/weapon/gun/energy/locked/frontier/holdout, 300), //CHOMPADD
|
||||
EQUIPMENT("Hybrid Equipment - Proto-Kinetic Dagger", /obj/item/weapon/kinetic_crusher/machete/dagger, 75),
|
||||
EQUIPMENT("Hybrid Equipment - Proto-Kinetic Machete", /obj/item/weapon/kinetic_crusher/machete, 250),
|
||||
EQUIPMENT("Fishing Net", /obj/item/weapon/material/fishing_net, 50),
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
icon_state = "medibot[on]"
|
||||
|
||||
/mob/living/bot/medbot/attack_hand(mob/living/carbon/human/H)
|
||||
if(H.a_intent == I_DISARM && !is_tipped)
|
||||
if(istype(H) && H.a_intent == I_DISARM && !is_tipped)
|
||||
H.visible_message("<span class='danger'>[H] begins tipping over [src].</span>", "<span class='warning'>You begin tipping over [src]...</span>")
|
||||
|
||||
if(world.time > last_tipping_action_voice + 15 SECONDS)
|
||||
@@ -210,7 +210,7 @@
|
||||
if(do_after(H, 3 SECONDS, target=src))
|
||||
tip_over(H)
|
||||
|
||||
else if(H.a_intent == I_HELP && is_tipped)
|
||||
else if(istype(H) && H.a_intent == I_HELP && is_tipped)
|
||||
H.visible_message("<span class='notice'>[H] begins righting [src].</span>", "<span class='notice'>You begin righting [src]...</span>")
|
||||
if(do_after(H, 3 SECONDS, target=src))
|
||||
set_right(H)
|
||||
|
||||
@@ -10,5 +10,7 @@ GLOBAL_LIST_INIT(hair_gradients, list(
|
||||
"Reflected (Inverted)" = "reflected_inverse",
|
||||
"Reflected High" = "reflected_high",
|
||||
"Reflected High (Inverted)" = "reflected_inverse_high",
|
||||
"Wavy" = "wavy"
|
||||
"Wavy" = "wavy",
|
||||
"Striped" = "striped",
|
||||
"Striped (Vertical)" = "striped_vertical"
|
||||
))
|
||||
@@ -84,6 +84,10 @@ GLOBAL_LIST_BOILERPLATE(all_darkportal_hubs, /obj/structure/dark_portal/hub)
|
||||
locked = src
|
||||
locked_name = src.name
|
||||
|
||||
/obj/structure/dark_portal/hub/New()
|
||||
..()
|
||||
set_light(2, 3, "#ffffff")
|
||||
|
||||
/obj/structure/dark_portal/hub/close_portal()
|
||||
locked = src
|
||||
locked_name = src.name
|
||||
|
||||
@@ -261,6 +261,7 @@
|
||||
a climbable wall. To climbe like so, use the verb 'Climb Down Wall' in IC tab!"
|
||||
cost = 0
|
||||
custom_only = FALSE
|
||||
var_changes = list("can_climb" = TRUE)
|
||||
allowed_species = list(SPECIES_XENOCHIMERA, SPECIES_CUSTOM) //So that we avoid needless bloat for xenochim
|
||||
excludes = list(/datum/trait/positive/wall_climber_pro, /datum/trait/positive/wall_climber)
|
||||
|
||||
|
||||
@@ -1040,6 +1040,8 @@
|
||||
var/desired_scale_y = size_multiplier * icon_scale_y //VOREStation edit
|
||||
|
||||
// Now for the regular stuff.
|
||||
if(offset_override) //CHOMPEdit
|
||||
center_offset = 0 //CHOMPEdit
|
||||
var/matrix/M = matrix()
|
||||
M.Scale(desired_scale_x, desired_scale_y)
|
||||
M.Translate(center_offset * desired_scale_x, (vis_height/2)*(desired_scale_y-1)) //CHOMPEdit
|
||||
|
||||
@@ -36,6 +36,10 @@
|
||||
"Parrot" = "pai-parrot",
|
||||
"Rabbit" = "pai-rabbit",
|
||||
//VOREStation Addition Start
|
||||
"Dire wolf" = "pai-diredog",
|
||||
"Horse (Lune)" = "pai-horse_lune",
|
||||
"Horse (Soleil)" = "pai-horse_soleil",
|
||||
"Dragon" = "pai-pdragon",
|
||||
"Bear" = "pai-bear",
|
||||
"Fennec" = "pai-fen",
|
||||
"Type Zero" = "pai-typezero",
|
||||
|
||||
@@ -47,7 +47,11 @@
|
||||
"car",
|
||||
"typeone",
|
||||
"13",
|
||||
"pai-raptor"
|
||||
"pai-raptor",
|
||||
"pai-diredog",
|
||||
"pai-horse_lune",
|
||||
"pai-horse_soleil",
|
||||
"pai-pdragon"
|
||||
)
|
||||
//These vars keep track of whether you have the related software, used for easily updating the UI
|
||||
var/soft_ut = FALSE //universal translator
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
/obj/item/weapon/circuitboard,
|
||||
/obj/item/weapon/smes_coil,
|
||||
/obj/item/weapon/fuel_assembly,
|
||||
/obj/item/weapon/ore/bluespace_crystal
|
||||
/obj/item/weapon/bluespace_crystal //Chomp EDIT
|
||||
) // CHOMPEdit - Buffing the gripper to allow bluespace crystal use for telesci building.
|
||||
|
||||
var/obj/item/wrapped = null // Item currently being held.
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
value = CATALOGUER_REWARD_TRIVIAL //Worth less points since it lives on the ship
|
||||
|
||||
|
||||
/mob/living/simple_mob/otie/red/chubby/cocoa
|
||||
/mob/living/simple_mob/vore/otie/red/chubby/cocoa
|
||||
name = "Cocoa"
|
||||
desc = "A good boi, eats the scraps when you're not looking."
|
||||
devourable = 0
|
||||
|
||||
@@ -5,7 +5,7 @@ GLOBAL_VAR_INIT(chicken_count, 0) // How mant chickens DO we have?
|
||||
name = "chicken"
|
||||
desc = "Hopefully the eggs are good this season."
|
||||
tt_desc = "E Gallus gallus"
|
||||
icon_state = "chicken"
|
||||
icon_state = "chicken_white"
|
||||
icon_living = "chicken"
|
||||
icon_dead = "chicken_dead"
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/mob/living/simple_mob/otie/zorgoia //Yes im basing the goias on oties for now, sue me....please dont sue me - Jack
|
||||
/mob/living/simple_mob/vore/otie/zorgoia //Yes im basing the goias on oties for now, sue me....please dont sue me - Jack
|
||||
name = "zorgoia"
|
||||
desc = "It's a a reptilian mammal hybrid, known for its voracious nature and love for fruits. By more popular terms its refered to as the furry slinky!"
|
||||
tt_desc = "Zorgoyuh slinkus"
|
||||
@@ -33,7 +33,7 @@
|
||||
pain_emote_1p = list("yelp", "whine", "bark", "growl")
|
||||
pain_emote_3p = list("yelps", "whines", "barks", "growls")
|
||||
|
||||
/mob/living/simple_mob/otie/zorgoia/New()
|
||||
/mob/living/simple_mob/vore/otie/zorgoia/New()
|
||||
..()
|
||||
switch(rand(9))
|
||||
if(0)
|
||||
@@ -57,7 +57,7 @@
|
||||
if(9)
|
||||
color = "#393939"
|
||||
|
||||
/mob/living/simple_mob/otie/zorgoia/feral //gets the pet2tame feature. starts out hostile tho so get gamblin'
|
||||
/mob/living/simple_mob/vore/otie/zorgoia/feral //gets the pet2tame feature. starts out hostile tho so get gamblin'
|
||||
name = "agressive zorgoia"
|
||||
desc = "It's a a reptilian mammal hybrid, known for its voracious nature and love for fruits. By more popular terms its refered to as the furry slinky! This one seems quite hungry and in a bad mood!"
|
||||
faction = "virgo3b"
|
||||
@@ -71,7 +71,7 @@
|
||||
min_n2 = 0
|
||||
max_n2 = 0
|
||||
|
||||
/mob/living/simple_mob/otie/zorgoia/friendly //gets the pet2tame feature and doesn't kill you right away
|
||||
/mob/living/simple_mob/vore/otie/zorgoia/friendly //gets the pet2tame feature and doesn't kill you right away
|
||||
name = "friendly zorgoia"
|
||||
desc = "It's a a reptilian mammal hybrid, known for its voracious nature and love for fruits. By more popular terms its refered to as the furry slinky! This one seems harmless and friendly!"
|
||||
faction = "neutral"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/mob/living/simple_mob/animal/space/jelly
|
||||
/mob/living/simple_mob/vore/jelly
|
||||
name = "jelly blob"
|
||||
desc = "Some sort of undulating blob of slime!"
|
||||
|
||||
@@ -19,8 +19,17 @@
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
|
||||
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
|
||||
|
||||
// Activate Noms!
|
||||
/mob/living/simple_mob/animal/space/jelly
|
||||
vore_active = 1
|
||||
vore_pounce_chance = 0
|
||||
vore_icons = SA_ICON_LIVING
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big
|
||||
/mob/living/simple_mob/clowns/big
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this clown is stronk
|
||||
faction = "clown"
|
||||
|
||||
@@ -18,8 +18,6 @@
|
||||
|
||||
loot_list = list(/obj/item/weapon/bikehorn = 100)
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big
|
||||
min_oxy = 0
|
||||
max_oxy = 500
|
||||
min_tox = 0
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/
|
||||
/mob/living/simple_mob/clowns/
|
||||
tt_desc = "E Homo sapiens corydon" //this is a clown
|
||||
faction = "clown"
|
||||
movement_sound = 'sound/effects/clownstep2.ogg'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/normal
|
||||
/mob/living/simple_mob/clowns/big/normal
|
||||
name = "Clown"
|
||||
desc = "A regular, every tuesday Clown."
|
||||
tt_desc = "E Homo sapiens corydon" //this is a clown
|
||||
@@ -10,7 +10,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/honkmunculus
|
||||
/mob/living/simple_mob/clowns/big/honkmunculus
|
||||
name = "A Clown?"
|
||||
desc = "That clown has some interesting proportions."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -28,7 +28,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/cluwne
|
||||
/mob/living/simple_mob/clowns/big/cluwne
|
||||
name = "A Clown?"
|
||||
desc = "Oh no not that thing."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -40,7 +40,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/tunnelclown
|
||||
/mob/living/simple_mob/clowns/big/tunnelclown
|
||||
name = "A Clown?"
|
||||
desc = "Have you heard about our lord and savior, Honkus Chrust?"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -52,7 +52,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/sentinel
|
||||
/mob/living/simple_mob/clowns/big/sentinel
|
||||
name = "A Clown?"
|
||||
desc = "This guy means business..."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -64,7 +64,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/punished
|
||||
/mob/living/simple_mob/clowns/big/punished
|
||||
name = "A Clown?"
|
||||
desc = "A clown at peak performance."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -82,7 +82,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/thicc
|
||||
/mob/living/simple_mob/clowns/big/thicc
|
||||
name = "A Clown..."
|
||||
desc = "I mean, you see it don't you?"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -100,7 +100,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/perm
|
||||
/mob/living/simple_mob/clowns/big/perm
|
||||
name = "A Clown?"
|
||||
desc = "That clown really needs to get that hair under control."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -118,7 +118,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/wide
|
||||
/mob/living/simple_mob/clowns/big/wide
|
||||
name = "A Clown?"
|
||||
desc = "He looks good from some angles!"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -136,7 +136,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/thin
|
||||
/mob/living/simple_mob/clowns/big/thin
|
||||
name = "A Clown?"
|
||||
desc = "Is he eating enough?"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -148,7 +148,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/hulk
|
||||
/mob/living/simple_mob/clowns/big/hulk
|
||||
name = "A Clown?"
|
||||
desc = "Just look at those muscles."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -168,7 +168,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/longface
|
||||
/mob/living/simple_mob/clowns/big/longface
|
||||
name = "A Clown?"
|
||||
desc = "Why the long face?"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -186,7 +186,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/giggles
|
||||
/mob/living/simple_mob/clowns/big/giggles
|
||||
name = "A Giggles?"
|
||||
desc = "Oh sweet space christ."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -198,7 +198,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/destroyer
|
||||
/mob/living/simple_mob/clowns/big/destroyer
|
||||
name = "A Clown?"
|
||||
desc = "That clown looks like he means business."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -239,7 +239,7 @@
|
||||
)
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/chlown
|
||||
/mob/living/simple_mob/clowns/big/chlown
|
||||
name = "A Clown?"
|
||||
desc = "No."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -257,7 +257,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/scary
|
||||
/mob/living/simple_mob/clowns/big/scary
|
||||
name = "A Clown?"
|
||||
desc = "Hey that clown looks familiar!"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -269,7 +269,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/flesh
|
||||
/mob/living/simple_mob/clowns/big/flesh
|
||||
name = "A Clown?"
|
||||
desc = "WOOOOO STREAKING WOOOO!"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -281,7 +281,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/clowns
|
||||
/mob/living/simple_mob/clowns/big/clowns
|
||||
name = "Definitely a singular clown"
|
||||
desc = "Is it one clown, or many clowns in not a trenchcoat?"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -299,7 +299,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/mutant
|
||||
/mob/living/simple_mob/clowns/big/mutant
|
||||
name = "A Clown?"
|
||||
desc = "Oh sweet space christ."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -317,7 +317,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/blob
|
||||
/mob/living/simple_mob/clowns/big/blob
|
||||
name = "A Clown?"
|
||||
desc = "Go to a gym fatty!"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -335,7 +335,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/mayor
|
||||
/mob/living/simple_mob/clowns/big/mayor
|
||||
name = "A clown?"
|
||||
desc = "One speaks in riddles..."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -353,7 +353,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/honkling
|
||||
/mob/living/simple_mob/clowns/big/honkling
|
||||
name = "A Clown?"
|
||||
desc = "Oh sweet space christ."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -367,7 +367,7 @@
|
||||
|
||||
//template
|
||||
|
||||
///mob/living/simple_mob/mobs_monsters/clowns/big/
|
||||
///mob/living/simple_mob/clowns/big/
|
||||
// name = "A Clown?"
|
||||
// desc = "Oh sweet space christ."
|
||||
// tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift
|
||||
/mob/living/simple_mob/clowns/big/c_shift
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
faction = "clown"
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/New()
|
||||
/mob/living/simple_mob/clowns/big/c_shift/New()
|
||||
..()
|
||||
verbs += /mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/proc/phase_shift
|
||||
verbs += /mob/living/simple_mob/clowns/big/c_shift/proc/phase_shift
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/anormal
|
||||
/mob/living/simple_mob/clowns/big/c_shift/anormal
|
||||
name = "Clown"
|
||||
desc = "A regular, every tuesday Clown."
|
||||
tt_desc = "E Homo sapiens corydon" //this is a clown
|
||||
@@ -10,7 +10,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/honkmunculus
|
||||
/mob/living/simple_mob/clowns/big/c_shift/honkmunculus
|
||||
name = "A Clown?"
|
||||
desc = "That clown has some interesting proportions."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -28,7 +28,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/cluwne
|
||||
/mob/living/simple_mob/clowns/big/c_shift/cluwne
|
||||
name = "A Clown?"
|
||||
desc = "Oh no not that thing."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -40,7 +40,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/tunnelclown
|
||||
/mob/living/simple_mob/clowns/big/c_shift/tunnelclown
|
||||
name = "A Clown?"
|
||||
desc = "Have you heard about our lord and savior, Honkus Chrust?"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -52,7 +52,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/sentinel
|
||||
/mob/living/simple_mob/clowns/big/c_shift/sentinel
|
||||
name = "A Clown?"
|
||||
desc = "This guy means business..."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -64,7 +64,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/punished
|
||||
/mob/living/simple_mob/clowns/big/c_shift/punished
|
||||
name = "A Clown?"
|
||||
desc = "A clown at peak performance."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -82,7 +82,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/thicc
|
||||
/mob/living/simple_mob/clowns/big/c_shift/thicc
|
||||
name = "A Clown..."
|
||||
desc = "I mean, you see it don't you?"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -100,7 +100,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/perm
|
||||
/mob/living/simple_mob/clowns/big/c_shift/perm
|
||||
name = "A Clown?"
|
||||
desc = "That clown really needs to get that hair under control."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -118,7 +118,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/wide
|
||||
/mob/living/simple_mob/clowns/big/c_shift/wide
|
||||
name = "A Clown?"
|
||||
desc = "He looks good from some angles!"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -136,7 +136,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/thin
|
||||
/mob/living/simple_mob/clowns/big/c_shift/thin
|
||||
name = "A Clown?"
|
||||
desc = "Is he eating enough?"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -148,7 +148,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/hulk
|
||||
/mob/living/simple_mob/clowns/big/c_shift/hulk
|
||||
name = "A Clown?"
|
||||
desc = "Just look at those muscles."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -168,7 +168,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/longface
|
||||
/mob/living/simple_mob/clowns/big/c_shift/longface
|
||||
name = "A Clown?"
|
||||
desc = "Why the long face?"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -186,7 +186,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/giggles
|
||||
/mob/living/simple_mob/clowns/big/c_shift/giggles
|
||||
name = "A Giggles?"
|
||||
desc = "Oh sweet space christ."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -198,7 +198,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/destroyer
|
||||
/mob/living/simple_mob/clowns/big/c_shift/destroyer
|
||||
name = "A Clown?"
|
||||
desc = "That clown looks like he means business."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -239,7 +239,7 @@
|
||||
)
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/chlown
|
||||
/mob/living/simple_mob/clowns/big/c_shift/chlown
|
||||
name = "A Clown?"
|
||||
desc = "No."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -257,7 +257,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/scary
|
||||
/mob/living/simple_mob/clowns/big/c_shift/scary
|
||||
name = "A Clown?"
|
||||
desc = "Hey that clown looks familiar!"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -269,7 +269,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/flesh
|
||||
/mob/living/simple_mob/clowns/big/c_shift/flesh
|
||||
name = "A Clown?"
|
||||
desc = "WOOOOO STREAKING WOOOO!"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -281,7 +281,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/clowns
|
||||
/mob/living/simple_mob/clowns/big/c_shift/clowns
|
||||
name = "Definitely a singular clown"
|
||||
desc = "Is it one clown, or many clowns in not a trenchcoat?"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -299,7 +299,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/mutant
|
||||
/mob/living/simple_mob/clowns/big/c_shift/mutant
|
||||
name = "A Clown?"
|
||||
desc = "Oh sweet space christ."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -317,7 +317,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/blob
|
||||
/mob/living/simple_mob/clowns/big/c_shift/blob
|
||||
name = "A Clown?"
|
||||
desc = "Go to a gym fatty!"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -335,7 +335,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/mayor
|
||||
/mob/living/simple_mob/clowns/big/c_shift/mayor
|
||||
name = "A clown?"
|
||||
desc = "One speaks in riddles..."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -353,7 +353,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/honkling
|
||||
/mob/living/simple_mob/clowns/big/c_shift/honkling
|
||||
name = "A Clown?"
|
||||
desc = "Oh sweet space christ."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift
|
||||
/mob/living/simple_mob/clowns/big/c_shift
|
||||
var/ability_flags = 0 //Flags for active abilities
|
||||
|
||||
// Phase shifting procs (and related procs)
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/proc/phase_shift()
|
||||
/mob/living/simple_mob/clowns/big/c_shift/proc/phase_shift()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!T.CanPass(src,T) || loc != T)
|
||||
to_chat(src,"<span class='warning'>You can't use that here!</span>")
|
||||
@@ -73,19 +73,19 @@
|
||||
density = FALSE
|
||||
force_max_speed = TRUE
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/UnarmedAttack()
|
||||
/mob/living/simple_mob/clowns/big/c_shift/UnarmedAttack()
|
||||
if(ability_flags & AB_PHASE_SHIFTED)
|
||||
return FALSE //Nope.
|
||||
|
||||
. = ..()
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/can_fall()
|
||||
/mob/living/simple_mob/clowns/big/c_shift/can_fall()
|
||||
if(ability_flags & AB_PHASE_SHIFTED)
|
||||
return FALSE //Nope!
|
||||
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/zMove(direction)
|
||||
/mob/living/simple_mob/clowns/big/c_shift/zMove(direction)
|
||||
if(ability_flags & AB_PHASE_SHIFTED)
|
||||
var/turf/destination = (direction == UP) ? GetAbove(src) : GetBelow(src)
|
||||
if(destination)
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
/obj/structure/ghost_pod/manual/clegg/create_occupant(var/mob/M)
|
||||
lightning_strike(get_turf(src), cosmetic = TRUE)
|
||||
var/list/choices = list(/mob/living/simple_mob/mobs_monsters/clowns/normal, /mob/living/simple_mob/mobs_monsters/clowns/honkling, /mob/living/simple_mob/mobs_monsters/clowns/mayor, /mob/living/simple_mob/mobs_monsters/clowns/blob, /mob/living/simple_mob/mobs_monsters/clowns/mutant, /mob/living/simple_mob/mobs_monsters/clowns/clowns, /mob/living/simple_mob/mobs_monsters/clowns/flesh, /mob/living/simple_mob/mobs_monsters/clowns/scary, /mob/living/simple_mob/mobs_monsters/clowns/chlown, /mob/living/simple_mob/mobs_monsters/clowns/destroyer, /mob/living/simple_mob/mobs_monsters/clowns/giggles, /mob/living/simple_mob/mobs_monsters/clowns/longface, /mob/living/simple_mob/mobs_monsters/clowns/hulk, /mob/living/simple_mob/mobs_monsters/clowns/thin, /mob/living/simple_mob/mobs_monsters/clowns/wide, /mob/living/simple_mob/mobs_monsters/clowns/perm, /mob/living/simple_mob/mobs_monsters/clowns/thicc, /mob/living/simple_mob/mobs_monsters/clowns/punished, /mob/living/simple_mob/mobs_monsters/clowns/sentinel, /mob/living/simple_mob/mobs_monsters/clowns/tunnelclown, /mob/living/simple_mob/mobs_monsters/clowns/cluwne, /mob/living/simple_mob/mobs_monsters/clowns/honkmunculus)
|
||||
var/list/choices = list(/mob/living/simple_mob/clowns/normal, /mob/living/simple_mob/clowns/honkling, /mob/living/simple_mob/clowns/mayor, /mob/living/simple_mob/clowns/blob, /mob/living/simple_mob/clowns/mutant, /mob/living/simple_mob/clowns/clowns, /mob/living/simple_mob/clowns/flesh, /mob/living/simple_mob/clowns/scary, /mob/living/simple_mob/clowns/chlown, /mob/living/simple_mob/clowns/destroyer, /mob/living/simple_mob/clowns/giggles, /mob/living/simple_mob/clowns/longface, /mob/living/simple_mob/clowns/hulk, /mob/living/simple_mob/clowns/thin, /mob/living/simple_mob/clowns/wide, /mob/living/simple_mob/clowns/perm, /mob/living/simple_mob/clowns/thicc, /mob/living/simple_mob/clowns/punished, /mob/living/simple_mob/clowns/sentinel, /mob/living/simple_mob/clowns/tunnelclown, /mob/living/simple_mob/clowns/cluwne, /mob/living/simple_mob/clowns/honkmunculus)
|
||||
var/chosen_clown = tgui_input_list(M, "Redspace clowns like themes, what's yours?", "Theme Choice", choices)
|
||||
density = FALSE
|
||||
var/mob/living/simple_mob/R = new chosen_clown(get_turf(src))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/honkelemental
|
||||
/mob/living/simple_mob/clowns/big/c_shift/honkelemental
|
||||
name = "Honk Elemental"
|
||||
desc = "That thing can't be real, right?"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -23,7 +23,7 @@
|
||||
speak = list("HONK", "Honk!", "Henk!")
|
||||
emote_see = list("honks")
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/honkelemental/verb/spawn_egg()
|
||||
/mob/living/simple_mob/clowns/big/c_shift/honkelemental/verb/spawn_egg()
|
||||
set category = "Abilities"
|
||||
set name = "Spawn Clown Egg"
|
||||
set desc = "Spawns an egg that a player can touch, which will call on ghosts to spawn as clowns."
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/
|
||||
/mob/living/simple_mob/clowns/
|
||||
response_help = "pokes"
|
||||
response_disarm = "gently pushes aside"
|
||||
response_harm = "hits"
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/honkmunculus
|
||||
/mob/living/simple_mob/clowns/honkmunculus
|
||||
name = "A Clown?"
|
||||
desc = "That clown has some interesting proportions."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -31,7 +31,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/cluwne
|
||||
/mob/living/simple_mob/clowns/cluwne
|
||||
name = "A Clown?"
|
||||
desc = "Oh no not that thing."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -43,7 +43,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/tunnelclown
|
||||
/mob/living/simple_mob/clowns/tunnelclown
|
||||
name = "A Clown?"
|
||||
desc = "Have you heard about our lord and savior, Honkus Chrust?"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -55,7 +55,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/sentinel
|
||||
/mob/living/simple_mob/clowns/sentinel
|
||||
name = "A Clown?"
|
||||
desc = "This guy means business..."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -68,7 +68,7 @@
|
||||
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/punished
|
||||
/mob/living/simple_mob/clowns/punished
|
||||
name = "A Clown?"
|
||||
desc = "A clown at peak performance."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -86,7 +86,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/thicc
|
||||
/mob/living/simple_mob/clowns/thicc
|
||||
name = "A Clown..."
|
||||
desc = "I mean, you see it don't you?"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -104,7 +104,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/perm
|
||||
/mob/living/simple_mob/clowns/perm
|
||||
name = "A Clown?"
|
||||
desc = "That clown really needs to get that hair under control."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -122,7 +122,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/wide
|
||||
/mob/living/simple_mob/clowns/wide
|
||||
name = "A Clown?"
|
||||
desc = "He looks good from some angles!"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -140,7 +140,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/thin
|
||||
/mob/living/simple_mob/clowns/thin
|
||||
name = "A Clown?"
|
||||
desc = "Is he eating enough?"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -152,7 +152,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/hulk
|
||||
/mob/living/simple_mob/clowns/hulk
|
||||
name = "A Clown?"
|
||||
desc = "Just look at those muscles."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -170,7 +170,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/longface
|
||||
/mob/living/simple_mob/clowns/longface
|
||||
name = "A Clown?"
|
||||
desc = "Why the long face?"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -188,7 +188,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/giggles
|
||||
/mob/living/simple_mob/clowns/giggles
|
||||
name = "A Giggles?"
|
||||
desc = "Oh sweet space christ."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -200,7 +200,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/destroyer
|
||||
/mob/living/simple_mob/clowns/destroyer
|
||||
name = "A Clown?"
|
||||
desc = "That clown looks like he means business."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -218,7 +218,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/chlown
|
||||
/mob/living/simple_mob/clowns/chlown
|
||||
name = "A Clown?"
|
||||
desc = "No."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -236,7 +236,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/scary
|
||||
/mob/living/simple_mob/clowns/scary
|
||||
name = "A Clown?"
|
||||
desc = "Hey that clown looks familiar!"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -248,7 +248,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/flesh
|
||||
/mob/living/simple_mob/clowns/flesh
|
||||
name = "A Clown?"
|
||||
desc = "WOOOOO STREAKING WOOOO!"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -260,7 +260,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/clowns
|
||||
/mob/living/simple_mob/clowns/clowns
|
||||
name = "Definitely a singular clown"
|
||||
desc = "Is it one clown, or many clowns in not a trenchcoat?"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -278,7 +278,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/mutant
|
||||
/mob/living/simple_mob/clowns/mutant
|
||||
name = "A Clown?"
|
||||
desc = "Oh sweet space christ."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -296,7 +296,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/blob
|
||||
/mob/living/simple_mob/clowns/blob
|
||||
name = "A Clown?"
|
||||
desc = "Go to a gym fatty!"
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -314,7 +314,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/mayor
|
||||
/mob/living/simple_mob/clowns/mayor
|
||||
name = "A clown?"
|
||||
desc = "One speaks in riddles..."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -332,7 +332,7 @@
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/honkling
|
||||
/mob/living/simple_mob/clowns/honkling
|
||||
name = "A Clown?"
|
||||
desc = "Oh sweet space christ."
|
||||
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
|
||||
@@ -344,7 +344,7 @@
|
||||
vis_height = 32
|
||||
|
||||
|
||||
/mob/living/simple_mob/mobs_monsters/clowns/normal
|
||||
/mob/living/simple_mob/clowns/normal
|
||||
name = "Clown"
|
||||
desc = "A regular, every tuesday Clown."
|
||||
tt_desc = "E Homo sapiens corydon" //this is a clown
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#define MORPH_COOLDOWN 50
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph
|
||||
/mob/living/simple_mob/vore/morph
|
||||
name = "morph"
|
||||
real_name = "morph"
|
||||
desc = "A revolting, pulsating pile of flesh."
|
||||
@@ -58,25 +58,25 @@
|
||||
var/static/list/blacklist_typecache = typecacheof(list(
|
||||
/obj/screen,
|
||||
/obj/singularity,
|
||||
/mob/living/simple_mob/vore/hostile/morph,
|
||||
/mob/living/simple_mob/vore/morph,
|
||||
/obj/effect))
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/Initialize()
|
||||
/mob/living/simple_mob/vore/morph/Initialize()
|
||||
verbs += /mob/living/proc/ventcrawl
|
||||
verbs += /mob/living/simple_mob/vore/hostile/morph/proc/take_over_prey
|
||||
if(!istype(src, /mob/living/simple_mob/vore/hostile/morph/dominated_prey))
|
||||
verbs += /mob/living/simple_mob/vore/hostile/morph/proc/morph_color
|
||||
verbs += /mob/living/simple_mob/vore/morph/proc/take_over_prey
|
||||
if(!istype(src, /mob/living/simple_mob/vore/morph/dominated_prey))
|
||||
verbs += /mob/living/simple_mob/vore/morph/proc/morph_color
|
||||
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/Destroy()
|
||||
/mob/living/simple_mob/vore/morph/Destroy()
|
||||
form = null
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/proc/allowed(atom/movable/A)
|
||||
/mob/living/simple_mob/vore/morph/proc/allowed(atom/movable/A)
|
||||
return !is_type_in_typecache(A, blacklist_typecache) && (isobj(A) || ismob(A))
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/examine(mob/user)
|
||||
/mob/living/simple_mob/vore/morph/examine(mob/user)
|
||||
if(morphed)
|
||||
. = form.examine(user)
|
||||
if(get_dist(user, src) <= 3 && !resting)
|
||||
@@ -84,7 +84,7 @@
|
||||
else
|
||||
. = ..()
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/ShiftClickOn(atom/movable/A)
|
||||
/mob/living/simple_mob/vore/morph/ShiftClickOn(atom/movable/A)
|
||||
if(Adjacent(A))
|
||||
if(morph_time <= world.time && !stat)
|
||||
if(A == src)
|
||||
@@ -97,7 +97,7 @@
|
||||
else
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/proc/assume(atom/movable/target)
|
||||
/mob/living/simple_mob/vore/morph/proc/assume(atom/movable/target)
|
||||
var/mob/living/carbon/human/humantarget = target
|
||||
if(istype(humantarget) && humantarget.resleeve_lock && ckey != humantarget.resleeve_lock)
|
||||
to_chat(src, "<span class='warning'>[target] cannot be impersonated!</span>")
|
||||
@@ -142,7 +142,7 @@
|
||||
|
||||
return
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/proc/restore(var/silent = FALSE)
|
||||
/mob/living/simple_mob/vore/morph/proc/restore(var/silent = FALSE)
|
||||
if(!morphed)
|
||||
to_chat(src, "<span class='warning'>You're already in your normal form!</span>")
|
||||
return
|
||||
@@ -187,21 +187,21 @@
|
||||
|
||||
morph_time = world.time + MORPH_COOLDOWN
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/death(gibbed)
|
||||
/mob/living/simple_mob/vore/morph/death(gibbed)
|
||||
if(morphed)
|
||||
visible_message("<span class='warning'>[src] twists and dissolves into a pile of flesh!</span>")
|
||||
restore(TRUE)
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/will_show_tooltip()
|
||||
/mob/living/simple_mob/vore/morph/will_show_tooltip()
|
||||
return (!morphed)
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/resize(var/new_size, var/animate = TRUE, var/uncapped = FALSE, var/ignore_prefs = FALSE, var/aura_animation = TRUE)
|
||||
/mob/living/simple_mob/vore/morph/resize(var/new_size, var/animate = TRUE, var/uncapped = FALSE, var/ignore_prefs = FALSE, var/aura_animation = TRUE)
|
||||
if(morphed && !ismob(form))
|
||||
return
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/lay_down()
|
||||
/mob/living/simple_mob/vore/morph/lay_down()
|
||||
if(morphed)
|
||||
var/temp_state = icon_state
|
||||
..()
|
||||
@@ -225,18 +225,18 @@
|
||||
else
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/update_icon()
|
||||
/mob/living/simple_mob/vore/morph/update_icon()
|
||||
if(morphed)
|
||||
return
|
||||
return ..()
|
||||
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/update_icons()
|
||||
/mob/living/simple_mob/vore/morph/update_icons()
|
||||
if(morphed)
|
||||
return
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/update_transform()
|
||||
/mob/living/simple_mob/vore/morph/update_transform()
|
||||
if(morphed)
|
||||
var/matrix/M = matrix()
|
||||
M.Scale(icon_scale_x, icon_scale_y)
|
||||
@@ -245,7 +245,7 @@
|
||||
else
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/proc/morph_color()
|
||||
/mob/living/simple_mob/vore/morph/proc/morph_color()
|
||||
set name = "Pick Color"
|
||||
set category = "Abilities"
|
||||
set desc = "You can set your color!"
|
||||
@@ -255,7 +255,7 @@
|
||||
chosen_color = newcolor
|
||||
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/proc/take_over_prey()
|
||||
/mob/living/simple_mob/vore/morph/proc/take_over_prey()
|
||||
set name = "Take Over Prey"
|
||||
set category = "Abilities"
|
||||
set desc = "Take command of your prey's body."
|
||||
@@ -302,23 +302,23 @@
|
||||
stop_pulling()
|
||||
original_ckey = ckey
|
||||
log_and_message_admins("[key_name_admin(src)] has swapped bodies with [key_name_admin(M)] as a morph at [get_area(src)] - [COORD(src)].")
|
||||
new /mob/living/simple_mob/vore/hostile/morph/dominated_prey(M.vore_selected, M.ckey, src, M)
|
||||
new /mob/living/simple_mob/vore/morph/dominated_prey(M.vore_selected, M.ckey, src, M)
|
||||
else
|
||||
to_chat(src, "<span class='warning'>\The [M] declined your request for control.</span>")
|
||||
else
|
||||
to_chat(src, "<span class='warning'>\The [M] declined your request for control.</span>")
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/dominated_prey
|
||||
/mob/living/simple_mob/vore/morph/dominated_prey
|
||||
name = "subservient node"
|
||||
color = "#171717"
|
||||
digestable = 0
|
||||
devourable = 0
|
||||
var/mob/living/simple_mob/vore/hostile/morph/parent_morph
|
||||
var/mob/living/simple_mob/vore/morph/parent_morph
|
||||
var/mob/living/carbon/human/prey_body
|
||||
var/prey_ckey
|
||||
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/dominated_prey/New(loc, pckey, parent, prey)
|
||||
/mob/living/simple_mob/vore/morph/dominated_prey/New(loc, pckey, parent, prey)
|
||||
. = ..()
|
||||
if(pckey)
|
||||
prey_ckey = pckey
|
||||
@@ -336,17 +336,17 @@
|
||||
else
|
||||
qdel(src)
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/dominated_prey/death(gibbed)
|
||||
/mob/living/simple_mob/vore/morph/dominated_prey/death(gibbed)
|
||||
. = ..()
|
||||
undo_prey_takeover(FALSE)
|
||||
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/dominated_prey/Destroy()
|
||||
/mob/living/simple_mob/vore/morph/dominated_prey/Destroy()
|
||||
. = ..()
|
||||
parent_morph = null
|
||||
prey_body = null
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/dominated_prey/proc/undo_prey_takeover(ooc_escape)
|
||||
/mob/living/simple_mob/vore/morph/dominated_prey/proc/undo_prey_takeover(ooc_escape)
|
||||
if(buckled)
|
||||
buckled.unbuckle_mob()
|
||||
if(prey_body.buckled)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
**the catalogue entry ends here.**"
|
||||
value = CATALOGUER_REWARD_MEDIUM
|
||||
|
||||
/mob/living/simple_mob/otie //Spawn this one only if you're looking for a bad time. Not friendly.
|
||||
/mob/living/simple_mob/vore/otie //Spawn this one only if you're looking for a bad time. Not friendly.
|
||||
name = "otie"
|
||||
desc = "The classic bioengineered longdog."
|
||||
tt_desc = "Otus robustus"
|
||||
@@ -57,7 +57,7 @@
|
||||
|
||||
// Activate Noms!
|
||||
|
||||
/mob/living/simple_mob/otie
|
||||
/mob/living/simple_mob/vore/otie
|
||||
vore_active = 1
|
||||
vore_capacity = 1
|
||||
vore_pounce_chance = 20
|
||||
@@ -68,7 +68,7 @@
|
||||
vore_default_contamination_color = "black"
|
||||
vore_default_item_mode = IM_DIGEST
|
||||
|
||||
/mob/living/simple_mob/otie/feral //gets the pet2tame feature. starts out hostile tho so get gamblin'
|
||||
/mob/living/simple_mob/vore/otie/feral //gets the pet2tame feature. starts out hostile tho so get gamblin'
|
||||
name = "mutated feral otie"
|
||||
desc = "The classic bioengineered longdog. No pets. Only bite. This one seems to have developed a mutation from an abnormally phoron-rich diet." //CHOMPedit
|
||||
tt_desc = "Otus phoronis"
|
||||
@@ -89,14 +89,14 @@
|
||||
max_n2 = 0
|
||||
has_eye_glow = TRUE
|
||||
|
||||
/mob/living/simple_mob/otie/feral/chubby
|
||||
/mob/living/simple_mob/vore/otie/feral/chubby
|
||||
name = "chubby mutated feral otie"
|
||||
desc = "The classic bioengineered longdog. No pets. Only bite. This one seems to have developed a mutation from an abnormally phoron-rich diet. What an absolute unit." //CHOMPedit
|
||||
icon_state = "photiec"
|
||||
icon_living = "photiec"
|
||||
icon_rest = "photiec_rest"
|
||||
|
||||
/mob/living/simple_mob/otie/red
|
||||
/mob/living/simple_mob/vore/otie/red
|
||||
name = "feral red otie"
|
||||
desc = "Seems this ominous looking longdog has been infused with wicked infernal forces."
|
||||
tt_desc = "Otus infernalis"
|
||||
@@ -118,13 +118,13 @@
|
||||
maxbodytemp = 1000
|
||||
has_eye_glow = TRUE
|
||||
|
||||
/mob/living/simple_mob/otie/red/friendly //gets the pet2tame feature and doesn't kill you right away
|
||||
/mob/living/simple_mob/vore/otie/red/friendly //gets the pet2tame feature and doesn't kill you right away
|
||||
name = "red otie"
|
||||
desc = "Seems this ominous looking longdog has been infused with wicked infernal forces. This one seems rather peaceful though."
|
||||
faction = "neutral"
|
||||
tamed = 1
|
||||
|
||||
/mob/living/simple_mob/otie/red/chubby //gets the pet2tame feature and doesn't kill you right away
|
||||
/mob/living/simple_mob/vore/otie/red/chubby //gets the pet2tame feature and doesn't kill you right away
|
||||
name = "chubby red otie"
|
||||
desc = "Seems this ominous looking longdog has been infused with wicked infernal forces. What an absolute unit."
|
||||
icon_state = "hotiec"
|
||||
@@ -133,20 +133,20 @@
|
||||
faction = "neutral"
|
||||
tamed = 1
|
||||
|
||||
/mob/living/simple_mob/otie/friendly //gets the pet2tame feature and doesn't kill you right away
|
||||
/mob/living/simple_mob/vore/otie/friendly //gets the pet2tame feature and doesn't kill you right away
|
||||
name = "otie"
|
||||
desc = "The classic bioengineered longdog. This one might even tolerate you!"
|
||||
faction = "neutral"
|
||||
tamed = 1
|
||||
|
||||
/mob/living/simple_mob/otie/friendly/chubby
|
||||
/mob/living/simple_mob/vore/otie/friendly/chubby
|
||||
name = "chubby otie"
|
||||
desc = "The classic bioengineered longdog. This one might even tolerate you! What an absolute unit"
|
||||
icon_state = "fotie"
|
||||
icon_living = "fotie"
|
||||
icon_rest = "fotie_rest"
|
||||
|
||||
/mob/living/simple_mob/otie/cotie //same as above but has a little collar :v
|
||||
/mob/living/simple_mob/vore/otie/cotie //same as above but has a little collar :v
|
||||
name = "tamed otie"
|
||||
desc = "The classic bioengineered longdog. This one has a nice little collar on its neck. However a proper domesticated otie is an oxymoron and the collar is likely just a decoration."
|
||||
icon_state = "cotie"
|
||||
@@ -155,14 +155,14 @@
|
||||
faction = "neutral"
|
||||
tamed = 1
|
||||
|
||||
/mob/living/simple_mob/otie/cotie/chubby
|
||||
/mob/living/simple_mob/vore/otie/cotie/chubby
|
||||
name = "chubby tamed otie"
|
||||
desc = "The classic bioengineered longdog. This one has a nice little collar on its neck. What an absolute unit."
|
||||
icon_state = "fcotie"
|
||||
icon_living = "fcotie"
|
||||
icon_rest = "fcotie_rest"
|
||||
|
||||
/mob/living/simple_mob/otie/cotie/phoron //friendly phoron pup with collar
|
||||
/mob/living/simple_mob/vore/otie/cotie/phoron //friendly phoron pup with collar
|
||||
name = "mutated otie"
|
||||
desc = "Looks like someone did manage to domesticate one of those wild phoron mutants. What a badass."
|
||||
tt_desc = "Otus phoronis"
|
||||
@@ -180,7 +180,7 @@
|
||||
max_n2 = 0
|
||||
has_eye_glow = TRUE
|
||||
|
||||
/mob/living/simple_mob/otie/security //tame by default unless you're a marked crimester. can be befriended to follow with pets tho.
|
||||
/mob/living/simple_mob/vore/otie/security //tame by default unless you're a marked crimester. can be befriended to follow with pets tho.
|
||||
name = "guard otie"
|
||||
desc = "The VARMAcorp bioengineering division flagship product on big mean guard dogs."
|
||||
icon_state = "sotie"
|
||||
@@ -198,7 +198,7 @@
|
||||
var/check_records = 0 // If true, arrests people without a record.
|
||||
var/check_arrest = 1 // If true, arrests people who are set to arrest.
|
||||
|
||||
/mob/living/simple_mob/otie/security/chubby
|
||||
/mob/living/simple_mob/vore/otie/security/chubby
|
||||
name = "chubby guard otie"
|
||||
desc = "The VARMAcorp bioengineering division flagship product on big mean guard dogs. What an absolute unit."
|
||||
icon_state = "fsotie"
|
||||
@@ -206,7 +206,7 @@
|
||||
icon_rest = "fsotie_rest"
|
||||
icon_dead = "fsotie-dead"
|
||||
|
||||
/mob/living/simple_mob/otie/security/phoron
|
||||
/mob/living/simple_mob/vore/otie/security/phoron
|
||||
name = "mutated guard otie"
|
||||
desc = "An extra rare phoron resistant version of the VARMAcorp trained guard dogs adapted for hostile environments."
|
||||
tt_desc = "Otus phoronis"
|
||||
@@ -223,7 +223,7 @@
|
||||
min_n2 = 0
|
||||
max_n2 = 0
|
||||
|
||||
/mob/living/simple_mob/otie/security/phoron/red
|
||||
/mob/living/simple_mob/vore/otie/security/phoron/red
|
||||
name = "red guard otie"
|
||||
desc = "An ominous looking version of the big mean VARMAcorp guard dogs."
|
||||
tt_desc = "Otus infernalis"
|
||||
@@ -233,20 +233,20 @@
|
||||
icon_dead = "sechotie-dead"
|
||||
maxbodytemp = 1000
|
||||
|
||||
/mob/living/simple_mob/otie/security/phoron/red/chubby
|
||||
/mob/living/simple_mob/vore/otie/security/phoron/red/chubby
|
||||
name = "chubby red guard otie"
|
||||
desc = "An ominous looking version of the big mean VARMAcorp guard dogs. What an absolute unit."
|
||||
icon_state = "hotiesc"
|
||||
icon_living = "hotiesc"
|
||||
icon_rest = "hotiesc_rest"
|
||||
|
||||
/mob/living/simple_mob/otie/attackby(var/obj/item/O, var/mob/user) // Trade donuts for bellybrig victims.
|
||||
/mob/living/simple_mob/vore/otie/attackby(var/obj/item/O, var/mob/user) // Trade donuts for bellybrig victims.
|
||||
if(istype(O, /obj/item/weapon/reagent_containers/food))
|
||||
qdel(O)
|
||||
playsound(src,'sound/items/eatfood.ogg', rand(10,50), 1)
|
||||
if(!has_AI())//No autobarf on player control.
|
||||
return
|
||||
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/donut) && istype(src, /mob/living/simple_mob/otie/security))
|
||||
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/donut) && istype(src, /mob/living/simple_mob/vore/otie/security))
|
||||
to_chat(user,"<span class='notice'>The guard pup accepts your offer for their catch.</span>")
|
||||
release_vore_contents()
|
||||
else if(prob(2)) //Small chance to get prey out from non-sec oties.
|
||||
@@ -255,7 +255,7 @@
|
||||
return
|
||||
. = ..()
|
||||
|
||||
/mob/living/simple_mob/otie/security/feed_grabbed_to_self(var/mob/living/user, var/mob/living/prey) // Make the gut start out safe for bellybrigging.
|
||||
/mob/living/simple_mob/vore/otie/security/feed_grabbed_to_self(var/mob/living/user, var/mob/living/prey) // Make the gut start out safe for bellybrigging.
|
||||
if(ishuman(prey))
|
||||
vore_selected.digest_mode = DM_HOLD
|
||||
if(check_threat(prey) >= 4)
|
||||
@@ -264,12 +264,12 @@
|
||||
vore_selected.digest_mode = DM_DIGEST
|
||||
. = ..()
|
||||
|
||||
/mob/living/simple_mob/otie/security/proc/check_threat(var/mob/living/M)
|
||||
/mob/living/simple_mob/vore/otie/security/proc/check_threat(var/mob/living/M)
|
||||
if(!M || !ishuman(M) || M.stat == DEAD || src == M)
|
||||
return 0
|
||||
return M.assess_perp(0, 0, 0, check_records, check_arrest)
|
||||
|
||||
/mob/living/simple_mob/otie/security/proc/target_name(mob/living/T)
|
||||
/mob/living/simple_mob/vore/otie/security/proc/target_name(mob/living/T)
|
||||
if(ishuman(T))
|
||||
var/mob/living/carbon/human/H = T
|
||||
return H.get_id_name("unidentified person")
|
||||
@@ -277,7 +277,7 @@
|
||||
|
||||
//Pet 4 friendly
|
||||
|
||||
/mob/living/simple_mob/otie/attack_hand(mob/living/carbon/human/M as mob)
|
||||
/mob/living/simple_mob/vore/otie/attack_hand(mob/living/carbon/human/M as mob)
|
||||
|
||||
switch(M.a_intent)
|
||||
if(I_HELP)
|
||||
@@ -314,12 +314,12 @@
|
||||
else
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/otie/death(gibbed, deathmessage = "dies!")
|
||||
/mob/living/simple_mob/vore/otie/death(gibbed, deathmessage = "dies!")
|
||||
.=..()
|
||||
resting = 0
|
||||
icon_state = icon_dead
|
||||
|
||||
/mob/living/simple_mob/otie/Login()
|
||||
/mob/living/simple_mob/vore/otie/Login()
|
||||
. = ..()
|
||||
if(!riding_datum)
|
||||
riding_datum = new /datum/riding/simple_mob(src)
|
||||
@@ -327,7 +327,7 @@
|
||||
verbs |= /mob/living/proc/toggle_rider_reins
|
||||
movement_cooldown = 0
|
||||
|
||||
/mob/living/simple_mob/otie/MouseDrop_T(mob/living/M, mob/living/user)
|
||||
/mob/living/simple_mob/vore/otie/MouseDrop_T(mob/living/M, mob/living/user)
|
||||
return
|
||||
|
||||
/datum/say_list/otie
|
||||
@@ -339,7 +339,7 @@
|
||||
|
||||
/datum/ai_holder/simple_mob/melee/evasive/otie
|
||||
|
||||
/datum/ai_holder/simple_mob/melee/evasive/otie/New(var/mob/living/simple_mob/otie/new_holder)
|
||||
/datum/ai_holder/simple_mob/melee/evasive/otie/New(var/mob/living/simple_mob/vore/otie/new_holder)
|
||||
.=..()
|
||||
if(new_holder.tamed)
|
||||
hostile = FALSE
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
love to nip and bite at things, as well as sniffing around. They seem to mark their territory by way of scent-marking/urinating on things."
|
||||
value = CATALOGUER_REWARD_EASY
|
||||
|
||||
/mob/living/simple_mob/animal/wolf
|
||||
/mob/living/simple_mob/vore/wolf
|
||||
name = "grey wolf"
|
||||
desc = "My, what big jaws it has!"
|
||||
tt_desc = "Canis lupus"
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
|
||||
// Activate Noms!
|
||||
/mob/living/simple_mob/animal/wolf
|
||||
/mob/living/simple_mob/vore/wolf
|
||||
vore_active = 1
|
||||
vore_icons = SA_ICON_LIVING
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
B.belly_fullscreen = "anim_belly" // CHOMPedit - Belly Fullscreen
|
||||
|
||||
// Space edition, stronger and bitier
|
||||
/mob/living/simple_mob/animal/wolf/space
|
||||
/mob/living/simple_mob/vore/wolf/space
|
||||
name = "space wolf"
|
||||
tt_desc = "Canis lupus aetherius"
|
||||
|
||||
@@ -83,10 +83,10 @@
|
||||
minbodytemp = 0
|
||||
maxbodytemp = 700
|
||||
|
||||
/mob/living/simple_mob/animal/wolf/space/Process_Spacemove(var/check_drift = 0)
|
||||
/mob/living/simple_mob/vore/wolf/space/Process_Spacemove(var/check_drift = 0)
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_mob/animal/wolf/direwolf
|
||||
/mob/living/simple_mob/vore/wolf/direwolf
|
||||
name = "dire wolf"
|
||||
desc = "The biggest and baddest wolf around."
|
||||
tt_desc = "Canis maxdirus"
|
||||
@@ -116,7 +116,7 @@
|
||||
buckle_lying = FALSE
|
||||
vore_icons = SA_ICON_LIVING | SA_ICON_REST
|
||||
|
||||
/mob/living/simple_mob/animal/wolf/direwolf/Login()
|
||||
/mob/living/simple_mob/vore/wolf/direwolf/Login()
|
||||
. = ..()
|
||||
if(!riding_datum)
|
||||
riding_datum = new /datum/riding/simple_mob(src)
|
||||
@@ -124,10 +124,10 @@
|
||||
verbs |= /mob/living/proc/toggle_rider_reins
|
||||
movement_cooldown = -1
|
||||
|
||||
/mob/living/simple_mob/animal/wolf/direwolf/MouseDrop_T(mob/living/M, mob/living/user)
|
||||
/mob/living/simple_mob/vore/wolf/direwolf/MouseDrop_T(mob/living/M, mob/living/user)
|
||||
return
|
||||
|
||||
/mob/living/simple_mob/animal/wolf/direwolf/dog
|
||||
/mob/living/simple_mob/vore/wolf/direwolf/dog
|
||||
name = "large dog"
|
||||
desc = "The biggest and goodest dog around."
|
||||
tt_desc = "Canis maxdirus familiaris"
|
||||
@@ -136,7 +136,7 @@
|
||||
icon_state = "diredog"
|
||||
icon_rest = "diredog_rest"
|
||||
|
||||
/mob/living/simple_mob/animal/wolf/direwolf/dog/sec
|
||||
/mob/living/simple_mob/vore/wolf/direwolf/dog/sec
|
||||
name = "large guard dog"
|
||||
desc = "The biggest and goodest guard dog around."
|
||||
icon_dead = "diredogs-dead"
|
||||
@@ -144,7 +144,7 @@
|
||||
icon_state = "diredogs"
|
||||
icon_rest = "diredogs_rest"
|
||||
|
||||
/mob/living/simple_mob/animal/wolf/direwolf/sec
|
||||
/mob/living/simple_mob/vore/wolf/direwolf/sec
|
||||
name = "dire guard wolf"
|
||||
desc = "The biggest and baddest guard wolf around."
|
||||
icon_dead = "direwolfs-dead"
|
||||
@@ -152,7 +152,7 @@
|
||||
icon_state = "direwolfs"
|
||||
icon_rest = "direwolfs_rest"
|
||||
|
||||
/mob/living/simple_mob/animal/wolf/direwolf/rykka
|
||||
/mob/living/simple_mob/vore/wolf/direwolf/rykka
|
||||
name = "Rykka"
|
||||
desc = "This big canine looks like a GSD. It has a collar tagged, 'Bitch'"
|
||||
tt_desc = "Canidae"
|
||||
@@ -186,7 +186,7 @@
|
||||
vore_stomach_name = "Gut"
|
||||
vore_stomach_flavor = "A black-and-purple veined gut, pulsing warmly around you. Loud gurgles sound around you as the gut squishes inwards and attempts to crush you - Rykka seems intent on digesting you, like the meat you are."
|
||||
|
||||
/mob/living/simple_mob/animal/wolf/direwolf/andrews
|
||||
/mob/living/simple_mob/vore/wolf/direwolf/andrews
|
||||
name = "andrewsarchus"
|
||||
desc = "That's one massive mean-looking piece of long extinct megafauna."
|
||||
tt_desc = "Andrewsarchus mongoliensis"
|
||||
|
||||
@@ -223,10 +223,11 @@
|
||||
response_disarm = "gently pushes aside"
|
||||
response_harm = "hits"
|
||||
|
||||
|
||||
// Chomp EDIT
|
||||
/mob/living/simple_mob/hostile/carp/pike
|
||||
vore_active = 1
|
||||
// NO VORE SPRITES
|
||||
// Chomp EDIT END
|
||||
|
||||
/mob/living/simple_mob/animal/space/carp/holographic
|
||||
vore_icons = 0 // NO VORE SPRITES
|
||||
|
||||
@@ -411,6 +411,10 @@
|
||||
name = "Devil Lock"
|
||||
icon_state = "hair_devilock"
|
||||
|
||||
/datum/sprite_accessory/hair/diagonalbangs
|
||||
name = "Diagonal Bangs"
|
||||
icon_state = "hair_diagonalbangs"
|
||||
|
||||
/datum/sprite_accessory/hair/dirk
|
||||
name = "Dirk"
|
||||
icon_state = "hair_dirk"
|
||||
@@ -1187,6 +1191,11 @@
|
||||
icon_state = "hair_volaju"
|
||||
flags = HAIR_TIEABLE
|
||||
|
||||
/datum/sprite_accessory/hair/volaju_pompless
|
||||
name = "Volaju, pompless"
|
||||
icon_state = "hair_volajupompless"
|
||||
flags = HAIR_TIEABLE
|
||||
|
||||
/datum/sprite_accessory/hair/wisp
|
||||
name = "Wisp"
|
||||
icon_state = "hair_wisp"
|
||||
|
||||
10
code/modules/mob/theme_lists.dm
Normal file
10
code/modules/mob/theme_lists.dm
Normal file
@@ -0,0 +1,10 @@
|
||||
//For use with various spawners! Put your selections inside of a list!
|
||||
/var/global/list/theme_animal = list()
|
||||
/var/global/list/theme_monster = list()
|
||||
/var/global/list/theme_alien = list()
|
||||
/var/global/list/theme_cold = list()
|
||||
/var/global/list/theme_hot = list()
|
||||
/var/global/list/theme_aquatic = list()
|
||||
/var/global/list/theme_dark = list()
|
||||
/var/global/list/theme_forest = list()
|
||||
/var/global/list/theme_humanoid = list()
|
||||
@@ -186,23 +186,28 @@
|
||||
climb_time +=3 SECONDS
|
||||
if(fall_chance < 30)
|
||||
fall_chance = 30
|
||||
L.custom_emote(VISIBLE_MESSAGE, "begins to climb up on \The [src]")
|
||||
L.visible_message(message = "<b>[L]</b> begins to climb up on <b>\The [src]</b>", self_message = "You begin to clumb up on <b>\The [src]</b>", \
|
||||
blind_message = "You hear the sounds of climbing!", runemessage = "Tap Tap")
|
||||
var/oops_time = world.time
|
||||
var/grace_time = 4 SECONDS
|
||||
to_chat(L, SPAN_WARNING("If you get interrupted after [(grace_time / (1 SECOND))] seconds of climbing, you will fall and hurt yourself, beware!"))
|
||||
if(do_after(L,climb_time))
|
||||
if(prob(fall_chance))
|
||||
to_chat(L, SPAN_DANGER("You slipped and fell!"))
|
||||
L.forceMove(above_mob)
|
||||
L.visible_message(message = "<b>[L]</b> falls off <b>\The [src]</b>", self_message = SPAN_DANGER("You slipped off <b>\The [src]</b>"), \
|
||||
blind_message = "you hear a loud thud!", runemessage = "CRASH!")
|
||||
else
|
||||
if(drop_our_held)
|
||||
L.drop_item(get_turf(L))
|
||||
L.forceMove(above_wall)
|
||||
L.visible_message(message = "<b>[L]</b> climbed up on <b>\The [src]</b>", \
|
||||
self_message = SPAN_NOTICE("You successfully scaled <b>\The [src]</b>"), \
|
||||
blind_message = "The sounds of climbing cease.", runemessage = "Tap Tap")
|
||||
L.adjust_nutrition(-nutrition_cost)
|
||||
|
||||
to_chat(L, SPAN_NOTICE("You clambered up successfully!"))
|
||||
else if(world.time > (oops_time + grace_time))
|
||||
L.forceMove(above_mob)
|
||||
L.visible_message(message = "<b>[L]</b> falls off <b>\The [src]</b>", self_message = SPAN_DANGER("You slipped off <b>\The [src]</b>"), \
|
||||
blind_message = "you hear a loud thud!", runemessage = "CRASH!")
|
||||
|
||||
/mob/living/verb/climb_down()
|
||||
set name = "Climb down wall"
|
||||
@@ -303,17 +308,27 @@
|
||||
to_chat(src, SPAN_DANGER("\The [climbing_surface] is not suitable for climbing! Even for a master climber, this is risky!"))
|
||||
if(fall_chance < 75 )
|
||||
fall_chance = 75
|
||||
src.custom_emote(VISIBLE_MESSAGE, "begins to climb down along \The [below_wall]")
|
||||
src.visible_message(message = "<b>[src]</b> climb down <b>\The [below_wall]</b>", \
|
||||
self_message = "You begin to descend <b>\The [below_wall]</b>", \
|
||||
blind_message = "You hear the sounds of climbing!", runemessage = "Tap Tap")
|
||||
below_wall.audible_message(message = "You hear something climbing up <b>\The [below_wall]</b>", runemessage= "Tap Tap")
|
||||
var/oops_time = world.time
|
||||
var/grace_time = 3 SECONDS
|
||||
to_chat(src, SPAN_WARNING("If you get interrupted after [(grace_time / (1 SECOND))] seconds of climbing, you will fall and hurt yourself, beware!"))
|
||||
if(do_after(src,climb_time))
|
||||
if(prob(fall_chance))
|
||||
to_chat(src, SPAN_DANGER("You slipped and fell!"))
|
||||
src.forceMove(front_of_us)
|
||||
src.visible_message(message = "<b>[src]</b> falls off <b>\The [below_wall]</b>", \
|
||||
self_message = SPAN_DANGER("You slipped off <b>\The [below_wall]</b>"), \
|
||||
blind_message = "you hear a loud thud!", runemessage = "CRASH!")
|
||||
else
|
||||
src.forceMove(destination)
|
||||
to_chat(src, SPAN_NOTICE("You descended successfully!"))
|
||||
src.visible_message(message = "<b>[src]</b> climbed down on <b>\The [below_wall]</b>", \
|
||||
self_message = SPAN_NOTICE("You successfully descended <b>\The [below_wall]</b>"), \
|
||||
blind_message = "The sounds of climbing cease.", runemessage = "Tap Tap")
|
||||
adjust_nutrition(-nutrition_cost)
|
||||
else if(world.time > (oops_time + grace_time))
|
||||
src.forceMove(front_of_us)
|
||||
src.visible_message(message = "<b>[src]</b> falls off <b>\The [below_wall]</b>", \
|
||||
self_message = SPAN_DANGER("You slipped off <b>\The [below_wall]</b>"), \
|
||||
blind_message = "you hear a loud thud!", runemessage = "CRASH!")
|
||||
|
||||
@@ -32,11 +32,11 @@
|
||||
/obj/machinery/power/port_gen/proc/TogglePower()
|
||||
if(active)
|
||||
active = FALSE
|
||||
icon_state = "[initial(icon_state)]"
|
||||
update_icon()
|
||||
// soundloop.stop()
|
||||
else if(HasFuel())
|
||||
active = TRUE
|
||||
icon_state = "[initial(icon_state)]on"
|
||||
update_icon()
|
||||
// soundloop.start()
|
||||
|
||||
/obj/machinery/power/port_gen/process()
|
||||
@@ -45,9 +45,15 @@
|
||||
UseFuel()
|
||||
else
|
||||
active = FALSE
|
||||
icon_state = initial(icon_state)
|
||||
update_icon()
|
||||
handleInactive()
|
||||
|
||||
/obj/machinery/power/port_gen/update_icon()
|
||||
if(active)
|
||||
icon_state = "[initial(icon_state)]on"
|
||||
else
|
||||
icon_state = initial(icon_state)
|
||||
|
||||
/obj/machinery/power/powered()
|
||||
return 1 //doesn't require an external power source
|
||||
|
||||
|
||||
@@ -412,3 +412,89 @@
|
||||
circuit = /obj/item/weapon/circuitboard/machine/reg_c
|
||||
default_power_gen = 500000 //Half power
|
||||
nutrition_drain = 0.5 //for half cost - EQUIVALENT EXCHANGE >:O
|
||||
|
||||
|
||||
// Big altevian version of pacman. has a lot of copypaste from regular kind, but less flexible.
|
||||
/obj/machinery/power/port_gen/large_altevian
|
||||
name = "Converted High Energy Exchange Supplier Extractor"
|
||||
desc = "A take on the classic PACMAN reactors that are seen throughout the galaxy. The altevians have ripped apart the tech and seemed to of found a way to maximize the fuel usage one would see with this kind of process. \
|
||||
However, it is a lot bulkier and nearly impossible to break apart, but still can be moved if need be with special tools."
|
||||
icon = 'icons/obj/props/decor64x64.dmi'
|
||||
icon_state = "alteviangen"
|
||||
bound_width = 64
|
||||
bound_height = 64
|
||||
anchored = TRUE
|
||||
power_gen = 200000
|
||||
|
||||
var/sheet_name = "Phoron Sheets"
|
||||
var/sheet_path = /obj/item/stack/material/phoron
|
||||
var/sheets = 0 //How many sheets of material are loaded in the generator
|
||||
var/sheet_left = 0 //How much is left of the current sheet
|
||||
var/time_per_sheet = 120 //fuel efficiency - how long 1 sheet lasts at power level 1
|
||||
var/max_sheets = 100 //max capacity of the hopper
|
||||
|
||||
/obj/machinery/power/port_gen/large_altevian/Initialize()
|
||||
.=..()
|
||||
if(anchored)
|
||||
connect_to_network()
|
||||
|
||||
/obj/machinery/power/port_gen/large_altevian/Destroy()
|
||||
DropFuel()
|
||||
return ..()
|
||||
|
||||
/obj/machinery/power/port_gen/large_altevian/examine(mob/user)
|
||||
. = ..()
|
||||
. += "There [sheets == 1 ? "is" : "are"] [sheets] sheet\s left in the hopper."
|
||||
|
||||
/obj/machinery/power/port_gen/large_altevian/HasFuel()
|
||||
var/needed_sheets = power_output / time_per_sheet
|
||||
if(sheets >= needed_sheets - sheet_left)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/machinery/power/port_gen/large_altevian/DropFuel()
|
||||
if(sheets)
|
||||
var/obj/item/stack/material/S = new sheet_path(loc, sheets)
|
||||
sheets -= S.get_amount()
|
||||
|
||||
/obj/machinery/power/port_gen/large_altevian/UseFuel()
|
||||
var/needed_sheets = power_output / time_per_sheet
|
||||
if (needed_sheets > sheet_left)
|
||||
sheets--
|
||||
sheet_left = (1 + sheet_left) - needed_sheets
|
||||
else
|
||||
sheet_left -= needed_sheets
|
||||
|
||||
/obj/machinery/power/port_gen/large_altevian/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
if(istype(O, sheet_path))
|
||||
var/obj/item/stack/addstack = O
|
||||
var/amount = min((max_sheets - sheets), addstack.get_amount())
|
||||
if(amount < 1)
|
||||
to_chat(user, "<span class='warning'>The [src.name] is full!</span>")
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You add [amount] sheet\s to the [src.name].</span>")
|
||||
sheets += amount
|
||||
addstack.use(amount)
|
||||
update_icon()
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/machinery/power/port_gen/large_altevian/attack_hand(mob/user as mob)
|
||||
..()
|
||||
if (!anchored)
|
||||
return
|
||||
TogglePower()
|
||||
|
||||
/obj/machinery/power/port_gen/large_altevian/attack_ai(mob/user as mob)
|
||||
TogglePower()
|
||||
|
||||
/obj/machinery/power/port_gen/large_altevian/update_icon()
|
||||
..()
|
||||
|
||||
cut_overlays()
|
||||
if(sheets > 75)
|
||||
add_overlay("alteviangen-fuel-100")
|
||||
else if(sheets > 25)
|
||||
add_overlay("alteviangen-fuel-66")
|
||||
else if(sheets > 0)
|
||||
add_overlay("alteviangen-fuel-33")
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
wielded_item_state = "laser-wielded"
|
||||
fire_delay = 8
|
||||
slot_flags = SLOT_BELT|SLOT_BACK
|
||||
w_class = ITEMSIZE_HUGE //CHOMP Edit
|
||||
w_class = ITEMSIZE_LARGE //CHOMP Edit - huge was dumb for this.
|
||||
force = 10
|
||||
origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2)
|
||||
matter = list(MAT_STEEL = 2000)
|
||||
@@ -258,15 +258,15 @@
|
||||
icon_state = "lasercannon"
|
||||
item_state = null
|
||||
wielded_item_state = "mhdhowitzer-wielded" //Placeholder
|
||||
origin_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3, TECH_POWER = 3)
|
||||
origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 6, TECH_POWER = 6) //ChompEdit improved.
|
||||
slot_flags = SLOT_BELT|SLOT_BACK
|
||||
projectile_type = /obj/item/projectile/beam/heavylaser/cannon
|
||||
battery_lock = 1
|
||||
battery_lock = 0 //ChompEdit This thing is worthless with this.
|
||||
fire_delay = 20
|
||||
w_class = ITEMSIZE_HUGE //CHOMP Edit. Lol a cannon used to be just large size? Are you kidding me? A CANNON.
|
||||
w_class = ITEMSIZE_HUGE //CHOMP Edit. Lol a cannon used to be just large size? Are you kidding me? A CANNON. Deserves this.
|
||||
one_handed_penalty = 90 // The thing's heavy and huge.
|
||||
accuracy = 45
|
||||
charge_cost = 400 //CHOMP Edit. Let's give this thing some more shots, seeing as it needs to be recharged at a charger.
|
||||
charge_cost = 400 //CHOMP Edit. Let's give this thing some more shots, seeing as it needs to be recharged at a charger - Most everything else is cheaper on charge cost now or smaller, this can stay the same, but with replacable batteries.
|
||||
|
||||
/obj/item/weapon/gun/energy/lasercannon/mounted
|
||||
name = "mounted laser cannon"
|
||||
@@ -289,7 +289,7 @@
|
||||
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 3, TECH_MAGNET = 2)
|
||||
projectile_type = /obj/item/projectile/beam/xray
|
||||
charge_cost = 200
|
||||
w_class = ITEMSIZE_HUGE //CHOMP Edit.
|
||||
w_class = ITEMSIZE_LARGE //CHOMP Edit. - huge is too big, this thing hits for 25
|
||||
|
||||
/obj/item/weapon/gun/energy/sniperrifle
|
||||
name = "marksman energy rifle"
|
||||
|
||||
@@ -84,8 +84,8 @@
|
||||
/obj/item/weapon/gun/energy/tommylaser
|
||||
name = "M-2421 'Tommy-Laser'"
|
||||
desc = "A automatic laser weapon resembling a Tommy-Gun. Designed by Cybersun Industries to be a man portable supressive fire laser weapon."
|
||||
icon_state = "tommylas"
|
||||
item_state = "tommylas"
|
||||
icon_state = "etommy"
|
||||
item_state = "etommy"
|
||||
w_class = ITEMSIZE_LARGE
|
||||
slot_flags = SLOT_BACK
|
||||
charge_cost = 60 // 40 shots, lay down the firepower
|
||||
|
||||
@@ -157,20 +157,20 @@
|
||||
item_icons = list(slot_l_hand_str = 'icons/mob/items/lefthand_guns_vr.dmi', slot_r_hand_str = 'icons/mob/items/righthand_guns_vr.dmi', "slot_belt" = 'icons/inventory/belt/mob_vr.dmi')
|
||||
fire_sound = 'sound/weapons/laser2.ogg'
|
||||
origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 2, TECH_POWER = 4)
|
||||
charge_cost = 300
|
||||
charge_cost = 100 //Chompedit Reduced cost
|
||||
|
||||
battery_lock = 1
|
||||
unacidable = TRUE
|
||||
|
||||
var/recharging = 0
|
||||
var/phase_power = 75
|
||||
var/phase_power = 15
|
||||
|
||||
projectile_type = /obj/item/projectile/beam/phaser
|
||||
//CHOMP Edit: Changed beam type to new phaser beam type.
|
||||
firemodes = list(
|
||||
list(mode_name="lethal", fire_delay=12, projectile_type=/obj/item/projectile/beam/phaser, charge_cost = 300),
|
||||
list(mode_name="low-power", fire_delay=8, projectile_type=/obj/item/projectile/beam/phaser/light, charge_cost = 80),
|
||||
)
|
||||
list(mode_name="lethal", fire_delay=10, projectile_type=/obj/item/projectile/beam/phaser, charge_cost = 80), //Chompedit Reduced cost
|
||||
list(mode_name="low-power", fire_delay=5, projectile_type=/obj/item/projectile/beam/phaser/light, charge_cost = 40), //Chompedit Reduced cost
|
||||
) //CHOMPedit Adjusts cost and fire delay to match adjusted beams.
|
||||
recoil_mode = 0 //CHOMP Addition: Removes recoil for micros.
|
||||
|
||||
/obj/item/weapon/gun/energy/locked/frontier/unload_ammo(var/mob/user)
|
||||
@@ -185,7 +185,7 @@
|
||||
break
|
||||
playsound(src,'sound/items/change_drill.ogg',25,1)
|
||||
user.hud_used.update_ammo_hud(user, src)
|
||||
if(power_supply.give(phase_power/8) < phase_power/8) //CHOMP Edit: Nerfed charge time of all phasers by adding /8 in a couple spots to this line
|
||||
if(power_supply.give(phase_power) < phase_power)
|
||||
break
|
||||
|
||||
recharging = 0
|
||||
@@ -215,19 +215,22 @@
|
||||
|
||||
/obj/item/weapon/gun/energy/locked/frontier/carbine
|
||||
name = "frontier carbine"
|
||||
desc = "An ergonomically improved version of the venerable frontier phaser, the carbine is a fairly new weapon, and has only been produced in limited numbers so far. Includes a built-in crank charger for recharging away from civilization. This one has a safety interlock that prevents firing while in proximity to the facility."
|
||||
desc = "A larger and more efficient version of the venerable frontier phaser, the carbine is a fairly new weapon, and has only been produced in limited numbers so far. Includes a built-in crank charger for recharging away from civilization. This one has a safety interlock that prevents firing while in proximity to the facility."
|
||||
description_fluff = "The NT Brand Model AT2 Secured Phaser System, a specialty phaser that has an intergrated chip that prevents the user from opperating the weapon within the vicinity of any NanoTrasen opperated outposts/stations/bases. However, this chip can be disabled so the weapon CAN BE used in the vicinity of any NanoTrasen opperated outposts/stations/bases. The weapon doesn't use traditional weapon power cells and instead works via a pump action that recharges the internal cells. It is a staple amongst exploration personell who usually don't have the license to opperate a lethal weapon through NT and provides them with a weapon that can be recharged away from civilization."
|
||||
icon = 'icons/obj/gun_vr.dmi'
|
||||
icon_state = "carbinekill"
|
||||
item_state = "energykill"
|
||||
item_icons = list(slot_l_hand_str = 'icons/mob/items/lefthand_guns.dmi', slot_r_hand_str = 'icons/mob/items/righthand_guns.dmi')
|
||||
phase_power = 150
|
||||
phase_power = 25
|
||||
one_handed_penalty = 15 //CHOMPEdit Added this, same as phase carbine.
|
||||
w_class = ITEMSIZE_LARGE //CHOMPEdit Should be bigger.
|
||||
|
||||
modifystate = "carbinekill"
|
||||
//CHOMP Edit: Changed beam type to new phaser beam type.
|
||||
firemodes = list(
|
||||
list(mode_name="lethal", fire_delay=12, projectile_type=/obj/item/projectile/beam/phaser, modifystate="carbinekill", charge_cost = 300),
|
||||
list(mode_name="low-power", fire_delay=8, projectile_type=/obj/item/projectile/beam/phaser/light, modifystate="carbinestun", charge_cost = 80),
|
||||
list(mode_name="lethal", fire_delay=10, projectile_type=/obj/item/projectile/beam/phaser, modifystate="carbinekill", charge_cost = 60), //Chompedit Reduced cost
|
||||
list(mode_name="low-power", fire_delay=5, projectile_type=/obj/item/projectile/beam/phaser/light, modifystate="carbinestun", charge_cost = 30), //Chompedit Reduced cost
|
||||
list(mode_name="burst", burst=3, fire_delay=10, move_delay=4, burst_accuracy=list(0,0,0), dispersion=list(0.0, 0.2, 0.5), projectile_type=/obj/item/projectile/beam/phaser/light, charge_cost = 90), //Chompedit Added this
|
||||
)
|
||||
|
||||
/obj/item/weapon/gun/energy/locked/frontier/carbine/update_icon()
|
||||
@@ -251,15 +254,15 @@
|
||||
icon = 'icons/obj/gun_vr.dmi'
|
||||
icon_state = "holdoutkill"
|
||||
item_state = null
|
||||
phase_power = 100
|
||||
phase_power = 15
|
||||
|
||||
w_class = ITEMSIZE_SMALL
|
||||
charge_cost = 600
|
||||
charge_cost = 200 //Chompedit Reduced cost
|
||||
modifystate = "holdoutkill"
|
||||
//CHOMP Edit: Changed beam type to new phaser beam type.
|
||||
firemodes = list(
|
||||
list(mode_name="lethal", fire_delay=12, projectile_type=/obj/item/projectile/beam/phaser, modifystate="holdoutkill", charge_cost = 600),
|
||||
list(mode_name="low-power", fire_delay=8, projectile_type=/obj/item/projectile/beam/phaser/light, modifystate="holdoutstun", charge_cost = 120),
|
||||
list(mode_name="lethal", fire_delay=20, projectile_type=/obj/item/projectile/beam/phaser, modifystate="holdoutkill", charge_cost = 200), //Chompedit Reduced cost
|
||||
list(mode_name="low-power", fire_delay=10, projectile_type=/obj/item/projectile/beam/phaser/light, modifystate="holdoutstun", charge_cost = 50), //Chompedit Reduced cost
|
||||
list(mode_name="stun", fire_delay=12, projectile_type=/obj/item/projectile/beam/stun/med, modifystate="holdoutshock", charge_cost = 300),
|
||||
)
|
||||
|
||||
@@ -285,13 +288,13 @@
|
||||
accuracy = -15 //better than most snipers but still has penalty
|
||||
scoped_accuracy = 40
|
||||
one_handed_penalty = 50 // The weapon itself is heavy, and the long barrel makes it hard to hold steady with just one hand.
|
||||
phase_power = 150 //efficient crank charger
|
||||
phase_power = 30 //ChompEdit efficient crank charger
|
||||
projectile_type = /obj/item/projectile/beam/phaser/heavy //CHOMPEdit
|
||||
modifystate = "riflekill"
|
||||
//CHOMP Edit: Changed beam type to new phaser beam type.
|
||||
firemodes = list(
|
||||
list(mode_name="sniper", fire_delay=35, projectile_type=/obj/item/projectile/beam/phaser/heavy, modifystate="riflekill", charge_cost = 600),
|
||||
list(mode_name="lethal", fire_delay=12, projectile_type=/obj/item/projectile/beam/phaser, modifystate="riflestun", charge_cost = 200),
|
||||
list(mode_name="lethal", fire_delay=12, projectile_type=/obj/item/projectile/beam/phaser, modifystate="riflestun", charge_cost = 60), //Chompedit Reduced cost
|
||||
list(mode_name="sniper", fire_delay=35, move_delay=4, projectile_type=/obj/item/projectile/beam/phaser/heavy, modifystate="riflekill", charge_cost = 100), //Chompedit Reduced cost
|
||||
)
|
||||
|
||||
/obj/item/weapon/gun/energy/locked/frontier/rifle/ui_action_click()
|
||||
@@ -325,14 +328,14 @@
|
||||
icon = 'icons/obj/gun_vr.dmi'
|
||||
icon_state = "handbowkill"
|
||||
item_state = null
|
||||
phase_power = 100
|
||||
phase_power = 20
|
||||
|
||||
w_class = ITEMSIZE_SMALL
|
||||
charge_cost = 600
|
||||
charge_cost = 200 //Chompedit Reduced cost
|
||||
modifystate = "handbowkill"
|
||||
firemodes = list(
|
||||
list(mode_name="lethal", fire_delay=12, projectile_type=/obj/item/projectile/energy/phase/bolt/heavy, modifystate="handbowkill", charge_cost = 600), //CHOMP Edit
|
||||
list(mode_name="low-power", fire_delay=8, projectile_type=/obj/item/projectile/energy/phase/bolt, modifystate="handbowstun", charge_cost = 200), //CHOMP Edit
|
||||
list(mode_name="lethal", fire_delay=12, projectile_type=/obj/item/projectile/energy/phase/bolt/heavy, modifystate="handbowkill", charge_cost = 200), //CHOMP Edit
|
||||
list(mode_name="low-power", fire_delay=8, projectile_type=/obj/item/projectile/energy/phase/bolt, modifystate="handbowstun", charge_cost = 100), //CHOMP Edit
|
||||
)
|
||||
|
||||
/obj/item/weapon/gun/energy/locked/frontier/handbow/unlocked
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
item_state = "phasecarbine"
|
||||
wielded_item_state = "phasecarbine-wielded"
|
||||
slot_flags = SLOT_BACK|SLOT_BELT
|
||||
charge_cost = 240
|
||||
charge_cost = 80 //Chompedit Bringing charge cost down for all phase weapons.
|
||||
projectile_type = /obj/item/projectile/energy/phase
|
||||
one_handed_penalty = 15
|
||||
recoil_mode = 0 //CHOMP Addition: Removes recoil for micros.
|
||||
@@ -27,8 +27,8 @@
|
||||
one_handed_penalty = 0
|
||||
|
||||
/obj/item/weapon/gun/energy/locked/phasegun/unlocked/mounted/cyborg
|
||||
charge_cost = 200 //ChompEdit Reduced from 480 to 200
|
||||
recharge_time = 5 //ChompEdit Reduced from 7 to 5
|
||||
charge_cost = 80 //ChompEdit Reduced from 480 to 200, further reduced to 80 to match normal phase guns
|
||||
recharge_time = 16 //ChompEdit set up to 16 due to lower charge cost
|
||||
|
||||
/obj/item/weapon/gun/energy/locked/phasegun/pistol
|
||||
name = "phase pistol"
|
||||
@@ -37,7 +37,7 @@
|
||||
item_state = "taser" //I don't have an in-hand sprite, taser will be fine
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
slot_flags = SLOT_BELT|SLOT_HOLSTER
|
||||
charge_cost = 300
|
||||
charge_cost = 80 //Chompedit Bringing charge cost down for all phase weapons.
|
||||
projectile_type = /obj/item/projectile/energy/phase/light
|
||||
one_handed_penalty = 0
|
||||
move_delay = 0 // CHOMPEdit: Pistols have move_delay of 0
|
||||
@@ -54,7 +54,7 @@
|
||||
use_external_power = 1
|
||||
|
||||
/obj/item/weapon/gun/energy/locked/phasegun/pistol/unlocked/mounted/cyborg
|
||||
charge_cost = 400
|
||||
charge_cost = 80 //Chompedit, bringing in line with normal phase weapons
|
||||
recharge_time = 7
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
wielded_item_state = "phaserifle-wielded"
|
||||
w_class = ITEMSIZE_LARGE
|
||||
slot_flags = SLOT_BACK
|
||||
charge_cost = 150
|
||||
charge_cost = 80 //Chompedit Bringing charge cost down for all phase weapons.
|
||||
projectile_type = /obj/item/projectile/energy/phase/heavy
|
||||
accuracy = 15
|
||||
one_handed_penalty = 30
|
||||
@@ -85,7 +85,7 @@
|
||||
wielded_item_state = "phasecannon-wielded" //TODO: New Sprites
|
||||
w_class = ITEMSIZE_HUGE // This thing is big.
|
||||
slot_flags = SLOT_BACK
|
||||
charge_cost = 100
|
||||
charge_cost = 80 //Chompedit Bringing charge cost down for all phase weapons.
|
||||
projectile_type = /obj/item/projectile/energy/phase/heavy/cannon
|
||||
accuracy = 15
|
||||
one_handed_penalty = 65
|
||||
|
||||
@@ -1559,6 +1559,9 @@
|
||||
update_icon()
|
||||
update_transform()
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/sawn //Default sawn shotgun needs it's old icon path back
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/Initialize()
|
||||
. = ..()
|
||||
update_transform()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/item/projectile/beam/phaser //The "medium" phaser beam.
|
||||
damage = 10
|
||||
SA_bonus_damage = 40
|
||||
SA_vulnerability = list(SA_ANIMAL, MOB_CLASS_SYNTHETIC, MOB_CLASS_ABERRATION, MOB_CLASS_HUMANOID)
|
||||
damage = 20
|
||||
SA_bonus_damage = 20
|
||||
SA_vulnerability = list(SA_ANIMAL, MOB_CLASS_SYNTHETIC, MOB_CLASS_ABERRATION)
|
||||
icon = 'icons/obj/projectiles_ch.dmi'
|
||||
icon_state = "phaser"
|
||||
light_color = "#F18F12"
|
||||
@@ -12,8 +12,8 @@
|
||||
|
||||
|
||||
/obj/item/projectile/beam/phaser/light
|
||||
damage = 5
|
||||
SA_bonus_damage = 30
|
||||
damage = 10
|
||||
SA_bonus_damage = 10
|
||||
icon_state = "phaser_light"
|
||||
light_range = 1.5
|
||||
light_power = 0.3
|
||||
@@ -23,7 +23,8 @@
|
||||
|
||||
|
||||
/obj/item/projectile/beam/phaser/heavy
|
||||
SA_bonus_damage = 55
|
||||
damage = 30
|
||||
SA_bonus_damage = 30
|
||||
icon_state = "phaser_heavy"
|
||||
light_range = 3
|
||||
light_power = 1
|
||||
@@ -33,8 +34,8 @@
|
||||
|
||||
|
||||
/obj/item/projectile/beam/phaser/heavy/cannon
|
||||
damage = 15
|
||||
SA_bonus_damage = 60
|
||||
damage = 40
|
||||
SA_bonus_damage = 40
|
||||
|
||||
|
||||
/obj/effect/projectile/tracer/phaser
|
||||
|
||||
@@ -288,6 +288,7 @@
|
||||
impact_effect_type = /obj/effect/temp_visual/impact_effect/monochrome_laser
|
||||
hud_state = "plasma_sphere"
|
||||
|
||||
/* ChompEdit, moving over to energy_ch.dm
|
||||
/obj/item/projectile/energy/phase
|
||||
name = "phase wave"
|
||||
icon_state = "phase"
|
||||
@@ -312,6 +313,7 @@
|
||||
damage = 15
|
||||
SA_bonus_damage = 60 // 75 total on animals
|
||||
hud_state = "laser_heat"
|
||||
*/
|
||||
|
||||
/obj/item/projectile/energy/electrode/strong
|
||||
agony = 70
|
||||
|
||||
@@ -24,3 +24,32 @@
|
||||
hitsound = 'sound/weapons/sear.ogg'
|
||||
hud_state = "laser_overcharge"
|
||||
|
||||
/obj/item/projectile/energy/phase
|
||||
name = "phase wave"
|
||||
icon_state = "phase"
|
||||
range = 13
|
||||
damage = 5
|
||||
SA_bonus_damage = 45
|
||||
armor_penetration = -35
|
||||
SA_vulnerability = list(SA_ANIMAL, MOB_CLASS_SYNTHETIC, MOB_CLASS_ABERRATION, MOB_CLASS_HUMANOID) //CHOMP Edit expand this list
|
||||
hud_state = "laser_heat"
|
||||
|
||||
/obj/item/projectile/energy/phase/light
|
||||
range = 11
|
||||
SA_bonus_damage = 35
|
||||
armor_penetration = -50
|
||||
hud_state = "laser_heat"
|
||||
|
||||
/obj/item/projectile/energy/phase/heavy
|
||||
range = 16 //Chompedit This range was not great
|
||||
damage = 10
|
||||
SA_bonus_damage = 50
|
||||
armor_penetration = -25
|
||||
hud_state = "laser_heat"
|
||||
|
||||
/obj/item/projectile/energy/phase/heavy/cannon
|
||||
range = 20 //Chompedit This range was mediocre, but not worth a cannon.
|
||||
damage = 15
|
||||
SA_bonus_damage = 60
|
||||
armor_penetration = -20
|
||||
hud_state = "laser_heat"
|
||||
|
||||
@@ -204,3 +204,31 @@
|
||||
result = "mudslide"
|
||||
required_reagents = list("blackrussian" = 1, "irishcream" = 1)
|
||||
result_amount = 2
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/protein_shake
|
||||
name = "Protein Shake"
|
||||
id = "protein_shake"
|
||||
result = "protein_shake"
|
||||
required_reagents = list("water" = 5, "protein_powder" = 1)
|
||||
result_amount = 5
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/protein_shake/vanilla
|
||||
name = "Vanilla Protein Shake"
|
||||
id = "vanilla_protein_shake"
|
||||
result = "vanilla_protein_shake"
|
||||
required_reagents = list("water" = 5, "vanilla_protein_powder" = 1)
|
||||
result_amount = 5
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/protein_shake/banana
|
||||
name = "Banana Protein Shake"
|
||||
id = "banana_protein_shake"
|
||||
result = "banana_protein_shake"
|
||||
required_reagents = list("water" = 5, "banana_protein_powder" = 1)
|
||||
result_amount = 5
|
||||
|
||||
/decl/chemical_reaction/instant/drinks/protein_shake/strawberry
|
||||
name = "Strawberry Protein Shake"
|
||||
id = "strawberry_protein_shake"
|
||||
result = "strawberry_protein_shake"
|
||||
required_reagents = list("water" = 5, "strawberry_protein_powder" = 1)
|
||||
result_amount = 5
|
||||
@@ -554,3 +554,73 @@
|
||||
color = "#a6898d"
|
||||
|
||||
////////////////END BrainzSnax Reagents////////////////
|
||||
|
||||
/datum/reagent/nutriment/protein_powder
|
||||
name = "Protein Powder"
|
||||
id = "protein_powder"
|
||||
description = "Pure, powdered protein commonly used as a meal supplement."
|
||||
taste_description = "powdery protein"
|
||||
color = "#f4e6dd"
|
||||
|
||||
/datum/reagent/nutriment/protein_shake
|
||||
name = "Protein Shake"
|
||||
id = "protein_shake"
|
||||
description = "A mixture of water and protein commonly used as a meal supplement."
|
||||
taste_description = "pure protein"
|
||||
color = "#ebd8cb"
|
||||
|
||||
/datum/reagent/nutriment/protein_powder/vanilla
|
||||
name = "Vanilla Protein Powder"
|
||||
id = "vanilla_protein_powder"
|
||||
description = "Pure, powdered protein commonly used as a meal supplement. This one has added vanilla flavoring."
|
||||
taste_description = "powdery vanilla"
|
||||
color = "#fff7d2"
|
||||
|
||||
/datum/reagent/nutriment/protein_shake/vanilla
|
||||
name = "Vanilla Protein Shake"
|
||||
id = "vanilla_protein_shake"
|
||||
description = "A mixture of water and protein commonly used as a meal supplement. This one has added vanilla flavoring."
|
||||
taste_description = "vanilla"
|
||||
color = "#faefbc"
|
||||
|
||||
/datum/reagent/nutriment/protein_powder/banana
|
||||
name = "Banana Protein Powder"
|
||||
id = "banana_protein_powder"
|
||||
description = "Pure, powdered protein commonly used as a meal supplement. This one has added banana flavoring."
|
||||
taste_description = "powdery banana"
|
||||
color = "#faefbc"
|
||||
|
||||
/datum/reagent/nutriment/protein_shake/banana
|
||||
name = "Banana Protein Powder"
|
||||
id = "banana_protein_shake"
|
||||
description = "A mixture of water and protein commonly used as a meal supplement. This one has added banana flavoring."
|
||||
taste_description = "banana"
|
||||
color = "#e6daa1"
|
||||
|
||||
/datum/reagent/nutriment/protein_powder/chocolate
|
||||
name = "Chocolate Protein Powder"
|
||||
id = "chocolate_protein_powder"
|
||||
description = "Pure, powdered protein commonly used as a meal supplement. This one has added chocolate flavoring."
|
||||
taste_description = "powdery chocolate"
|
||||
color = "#865b3e"
|
||||
|
||||
/datum/reagent/nutriment/protein_shake/chocolate
|
||||
name = "Chocolate Protein Shake"
|
||||
id = "chocolate_protein_shake"
|
||||
description = "A mixture of water and protein commonly used as a meal supplement. This one has added chocolate flavoring."
|
||||
taste_description = "chocolate"
|
||||
color = "#644730"
|
||||
|
||||
/datum/reagent/nutriment/protein_powder/strawberry
|
||||
name = "Strawberry Protein Powder"
|
||||
id = "strawberry_protein_powder"
|
||||
description = "Pure, powdered protein commonly used as a meal supplement. This one has added strawberry flavoring."
|
||||
taste_description = "powdery strawberry"
|
||||
color = "#eba1a1"
|
||||
|
||||
/datum/reagent/nutriment/protein_shake/strawberry
|
||||
name = "Strawberry Protein Shake"
|
||||
id = "strawberry_protein_shake"
|
||||
description = "A mixture of water and protein commonly used as a meal supplement. This one has added strawberry flavoring."
|
||||
taste_description = "strawberry"
|
||||
color = "#e28585"
|
||||
|
||||
@@ -20,3 +20,11 @@
|
||||
req_tech = list(TECH_MATERIAL = 4, TECH_COMBAT = 4, TECH_PHORON = 4, TECH_POWER = 4, TECH_ILLEGAL = 3)
|
||||
materials = list(MAT_STEEL = 6000, MAT_GLASS = 4000, MAT_PHORON = 2500, MAT_SILVER = 1000, MAT_GOLD = 500, MAT_URANIUM = 3000)
|
||||
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/gamma
|
||||
|
||||
/datum/design/item/mecha/medigun
|
||||
name = "BL-3/P directed restoration system"
|
||||
desc = "A portable medical system used to treat external injuries from afar."
|
||||
id = "mech_medigun"
|
||||
req_tech = list(TECH_MATERIAL = 5, TECH_COMBAT = 5, TECH_BIO = 6)
|
||||
materials = list(MAT_STEEL = 8000, MAT_GOLD = 2000, MAT_SILVER = 1750, MAT_DIAMOND = 1500, MAT_PHORON = 4000)
|
||||
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/medigun
|
||||
|
||||
@@ -75,17 +75,17 @@ var/datum/controller/rogue/rm_controller
|
||||
/mob/living/simple_mob/animal/space/bats/roguemines = 1,
|
||||
/mob/living/simple_mob/animal/space/carp/roguemines = 2,
|
||||
/mob/living/simple_mob/animal/space/goose/roguemines = 2,
|
||||
/mob/living/simple_mob/animal/wolf/space/roguemines = 1),
|
||||
/mob/living/simple_mob/vore/wolf/space/roguemines = 1),
|
||||
|
||||
"tier3" = list(
|
||||
/mob/living/simple_mob/animal/space/carp/roguemines = 1,
|
||||
/mob/living/simple_mob/animal/space/goose/roguemines = 1,
|
||||
/mob/living/simple_mob/animal/wolf/space/roguemines = 3,
|
||||
/mob/living/simple_mob/vore/wolf/space/roguemines = 3,
|
||||
/mob/living/simple_mob/animal/space/carp/large/roguemines = 2,
|
||||
/mob/living/simple_mob/animal/space/bear/roguemines = 1),
|
||||
|
||||
"tier4" = list(
|
||||
/mob/living/simple_mob/animal/wolf/space/roguemines = 1,
|
||||
/mob/living/simple_mob/vore/wolf/space/roguemines = 1,
|
||||
/mob/living/simple_mob/animal/space/carp/large/roguemines = 4,
|
||||
/mob/living/simple_mob/animal/space/bear/roguemines = 2),
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user