Merge remote-tracking branch 'remotes/git-svn' 4847 into bs12_with_tgport

Conflicts:
	baystation12.dme
	code/game/verbs/ooc.dm
	code/modules/admin/admin_verbs.dm
	code/modules/food/recipes_microwave.dm
	html/changelog.html

Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
Cael_Aislinn
2012-10-12 17:53:17 +10:00
38 changed files with 4130 additions and 2856 deletions

View File

@@ -283,6 +283,7 @@
verbs += /client/proc/startSinglo //Used to prevent the station from losing power while testing stuff out.
verbs += /client/proc/toggle_log_hrefs
verbs += /client/proc/cmd_debug_mob_lists
verbs += /client/proc/set_ooc
else return
return
@@ -412,19 +413,9 @@
/datum/admins/proc/access_news_network,
/client/proc/one_click_antag,
/client/proc/invisimin,
/client/proc/set_ooc
//bs12 verbs
/client/proc/update_mob_sprite,
/client/proc/mod_panel,
/client/proc/admin_deny_shuttle,
/client/proc/playernotes,
/datum/admins/proc/show_skills,
/client/proc/Report,
/client/proc/display_admin_reports,
/client/proc/editappear,
/client/proc/cmd_mod_say,
/client/proc/playernotes
)
//bs12 verbs /client/proc/update_mob_sprite, /client/proc/mod_panel, /client/proc/admin_deny_shuttle, /client/proc/playernotes, /datum/admins/proc/show_skills, /client/proc/Report, /client/proc/display_admin_reports, /client/proc/editappear, /client/proc/cmd_mod_say, /client/proc/playernotes )
//verbs -= /client/proc/mapload
//verbs -= /client/proc/cmd_admin_drop_everything --merged with view variables
//verbs -= /client/proc/give_spell --Merged with view variables

View File

@@ -0,0 +1,59 @@
/obj/machinery/artillerycontrol
var/reload = 180
name = "Bluespace Artillery Control"
icon_state = "control_boxp1"
icon = 'particle_accelerator.dmi'
/obj/machinery/artillerycontrol/process()
if(src.reload<180)
src.reload++
/obj/structure/artilleryplaceholder
name = "artillery"
icon = 'particle_accelerator.dmi'
anchored = 1
density = 1
/obj/machinery/artillerycontrol/attack_hand(mob/user as mob)
user.machine = src
var/dat = "<B>Bluespace Artillery Control:</B><BR>"
dat += "Locked on<BR>"
dat += "<B>180 seconds are required to charge between shots:</B><BR>"
dat += "<A href='byond://?src=\ref[src];fire=1'>Open Fire</A><BR>"
dat += "Deployment of weapon authorized by <br>Nanotrasen Naval Command<br><br>Rember, friendly fire is grounds for termination of your contract and life.<HR>"
user << browse(dat, "window=scroll")
onclose(user, "scroll")
return
/obj/machinery/artillerycontrol/Topic(href, href_list)
..()
if (usr.stat || usr.restrained())
return
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
var/A
A = input("Area to jump bombard", "Open Fire", A) in teleportlocs
var/area/thearea = teleportlocs[A]
if (usr.stat || usr.restrained()) return
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
command_alert("Bluespace artillery fire detected. Brace for impact.")
message_admins("[key_name_admin(usr)] has launched an artillery strike.", 1)
var/list/L = list()
for(var/turf/T in get_area_turfs(thearea.type))
L+=T
var/loc = pick(L)
explosion(loc,2,5,11)
reload = 0
/*mob/proc/openfire()
var/A
A = input("Area to jump bombard", "Open Fire", A) in teleportlocs
var/area/thearea = teleportlocs[A]
command_alert("Bluespace artillery fire detected. Brace for impact.")
spawn(30)
var/list/L = list()
for(var/turf/T in get_area_turfs(thearea.type))
L+=T
var/loc = pick(L)
explosion(loc,2,5,11)*/

View File

@@ -4,7 +4,7 @@
/obj/effect/landmark/corpse
var/mobname = "Uknown" //Names the mob, obviously
var/mobname = "Unknown" //Names the mob, obviously
var/corpseuniform = null //Set this to an object path to have the slot filled with said object on the corpse.
var/corpsesuit = null
var/corpseshoes = null
@@ -65,9 +65,93 @@
del(src)
//An example.
// I'll work on making a list of corpses people request for maps, or that I think will be commonly used. Syndicate operatives for example.
/obj/effect/landmark/corpse/syndicatesoldier
mobname = "Syndicate Operative"
corpseuniform = /obj/item/clothing/under/syndicate
corpsesuit = /obj/item/clothing/suit/armor/vest
corpseshoes = /obj/item/clothing/shoes/swat
corpsegloves = /obj/item/clothing/gloves/swat
corpseradio = /obj/item/device/radio/headset
corpsemask = /obj/item/clothing/mask/gas
corpsehelmet = /obj/item/clothing/head/helmet/swat
corpseback = /obj/item/weapon/storage/backpack
corpseid = 1
corpseidjob = "Operative"
corpseidaccess = "Syndicate"
/obj/effect/landmark/corpse/syndicatecommando
mobname = "Syndicate Commando"
corpseuniform = /obj/item/clothing/under/syndicate
corpsesuit = /obj/item/clothing/suit/space/rig/syndi
corpseshoes = /obj/item/clothing/shoes/swat
corpsegloves = /obj/item/clothing/gloves/swat
corpseradio = /obj/item/device/radio/headset
corpsemask = /obj/item/clothing/mask/gas/syndicate
corpsehelmet = /obj/item/clothing/head/helmet/space/rig/syndi
corpseback = /obj/item/weapon/tank/jetpack/oxygen
corpsepocket1 = /obj/item/weapon/tank/emergency_oxygen
corpseid = 1
corpseidjob = "Operative"
corpseidaccess = "Syndicate"
///////////Civilians//////////////////////
/obj/effect/landmark/corpse/chef
mobname = "Chef"
corpseuniform = /obj/item/clothing/suit/chef
corpsesuit = /obj/item/clothing/suit/chef/classic
corpseshoes = /obj/item/clothing/shoes/black
corpsehelmet = /obj/item/clothing/head/chefhat
corpseback = /obj/item/weapon/storage/backpack
corpseradio = /obj/item/device/radio/headset
corpseid = 1
corpseidjob = "Chef"
corpseidaccess = "Chef"
/obj/effect/landmark/corpse/doctor
mobname = "Doctor"
corpseradio = /obj/item/device/radio/headset/headset_med
corpseuniform = /obj/item/clothing/under/rank/medical
corpsesuit = /obj/item/clothing/suit/labcoat
corpseback = /obj/item/weapon/storage/backpack/medic
corpsepocket1 = /obj/item/device/flashlight/pen
corpseshoes = /obj/item/clothing/shoes/black
corpseid = 1
corpseidjob = "Medical Doctor"
corpseidaccess = "Medical Doctor"
/obj/effect/landmark/corpse/engineer
mobname = "Engineer"
corpseradio = /obj/item/device/radio/headset/headset_eng
corpseuniform = /obj/item/clothing/under/rank/engineer
corpseback = /obj/item/weapon/storage/backpack/industrial
corpseshoes = /obj/item/clothing/shoes/orange
corpsebelt = /obj/item/weapon/storage/belt/utility/full
corpsegloves = /obj/item/clothing/gloves/yellow
corpsehelmet = /obj/item/clothing/head/hardhat
corpseid = 1
corpseidjob = "Station Engineer"
corpseidaccess = "Station Engineer"
/obj/effect/landmark/corpse/engineer/rig
corpsesuit = /obj/item/clothing/suit/space/rig
corpsemask = /obj/item/clothing/mask/breath
corpsehelmet = /obj/item/clothing/head/helmet/space/rig
/obj/effect/landmark/corpse/clown
mobname = "Giggles"
mobname = "Clown"
corpseuniform = /obj/item/clothing/under/rank/clown
corpseshoes = /obj/item/clothing/shoes/clown_shoes
corpseradio = /obj/item/device/radio/headset
@@ -78,4 +162,42 @@
corpseidjob = "Clown"
corpseidaccess = "Clown"
// I'll work on making a list of corpses people request for maps, or that I think will be commonly used. Syndicate operatives for example.
/obj/effect/landmark/corpse/scientist
mobname = "Scientist"
corpseradio = /obj/item/device/radio/headset/headset_sci
corpseuniform = /obj/item/clothing/under/rank/scientist
corpsesuit = /obj/item/clothing/suit/labcoat/science
corpseback = /obj/item/weapon/storage/backpack
corpseshoes = /obj/item/clothing/shoes/white
corpseid = 1
corpseidjob = "Scientist"
corpseidaccess = "Scientist"
/////////////////Officers//////////////////////
/obj/effect/landmark/corpse/bridgeofficer
mobname = "Bridge Officer"
corpseradio = /obj/item/device/radio/headset/heads/hop
corpseuniform = /obj/item/clothing/under/rank/centcom_officer
corpsesuit = /obj/item/clothing/suit/armor/bulletproof
corpseshoes = /obj/item/clothing/shoes/black
corpseglasses = /obj/item/clothing/glasses/sunglasses
corpseid = 1
corpseidjob = "Bridge Officer"
corpseidaccess = "Captain"
/obj/effect/landmark/corpse/commander
mobname = "Commander"
corpseuniform = /obj/item/clothing/under/rank/centcom_commander
corpsesuit = /obj/item/clothing/suit/armor/bulletproof
corpseradio = /obj/item/device/radio/headset/heads/captain
corpseglasses = /obj/item/clothing/glasses/eyepatch
corpsemask = /obj/item/clothing/mask/cigarette/cigar/cohiba
corpsehelmet = /obj/item/clothing/head/centhat
corpsegloves = /obj/item/clothing/gloves/swat
corpseshoes = /obj/item/clothing/shoes/swat
corpsepocket1 = /obj/item/weapon/lighter/zippo
corpseid = 1
corpseidjob = "Commander"
corpseidaccess = "Captain"

View File

@@ -46,6 +46,14 @@
)
result = /obj/item/weapon/reagent_containers/food/snacks/donut/jelly
/datum/recipe/jellydonut/roro
reagents = list("rorojelly" = 5, "flour" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/donut/rorojelly
/datum/recipe/jellydonut/cherry
reagents = list("cherryjelly" = 5, "flour" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly
/datum/recipe/donut
reagents = list("flour" = 5)
items = list(
@@ -356,6 +364,13 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/banana,
)
result = /obj/item/weapon/reagent_containers/food/snacks/pie
/datum/recipe/cherrypie
reagents = list("flour" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/cherries,
)
result = /obj/item/weapon/reagent_containers/food/snacks/cherrypie
/*
/datum/recipe/berrypie
reagents = list("berryjuice" = 5)
@@ -761,7 +776,14 @@
items = list(
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
)
result = /obj/item/weapon/reagent_containers/food/snacks/rorotoast
result = /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/roro
/datum/recipe/jelliedtoast
reagents = list("cherryjelly" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
)
result = /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/cherry
/datum/recipe/milosoup
reagents = list("water" = 10)
@@ -878,10 +900,13 @@
/datum/recipe/roroburger
reagents = list("rorojelly" = 5, "flour" = 15)
items = list(
// /obj/item/weapon/reagent_containers/food/snacks/flour,
)
result = /obj/item/weapon/reagent_containers/food/snacks/roroburger
items = list()
result = /obj/item/weapon/reagent_containers/food/snacks/jellyburger/roro
/datum/recipe/jellyburger
reagents = list("cherryjelly" = 5, "flour" = 15)
items = list()
result = /obj/item/weapon/reagent_containers/food/snacks/jellyburger/cherry
/datum/recipe/twobread
reagents = list("wine" = 5)
@@ -897,7 +922,15 @@
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
)
result = /obj/item/weapon/reagent_containers/food/snacks/rorosandwich
result = /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/roro
/datum/recipe/cherrysandwich
reagents = list("cherryjelly" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
)
result = /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry
/datum/recipe/orangecake
reagents = list("milk" = 5, "flour" = 15)
@@ -1070,6 +1103,10 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/apple,
)
result = /obj/item/weapon/reagent_containers/food/snacks/herbsalad
make_food(var/obj/container as obj)
var/obj/item/weapon/reagent_containers/food/snacks/herbsalad/being_cooked = ..(container)
being_cooked.reagents.del_reagent("toxin")
return being_cooked
/datum/recipe/aesirsalad
items = list(
@@ -1089,6 +1126,10 @@
/obj/item/weapon/reagent_containers/food/snacks/faggot,
)
result = /obj/item/weapon/reagent_containers/food/snacks/validsalad
make_food(var/obj/container as obj)
var/obj/item/weapon/reagent_containers/food/snacks/validsalad/being_cooked = ..(container)
being_cooked.reagents.del_reagent("toxin")
return being_cooked
/datum/recipe/cracker
reagents = list("flour" = 5, "sodiumchloride" = 1)

View File

@@ -178,7 +178,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if(istype(usr, /mob/dead/observer))
var/list/mobs = getmobs()
var/input = input("Please, select a mob!", "Follow Mob", null, null) as null|anything in mobs
var/input = input("Please, select a mob!", "Haunt", null, null) as null|anything in mobs
var/mob/target = mobs[input]
if(target && target != usr)
spawn(0)
@@ -187,6 +187,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
var/turf/T = get_turf(target)
if(!T)
break
if(!client)
break
src.loc = T
pos = src.loc
sleep(15)

View File

@@ -48,9 +48,6 @@
/mob/living/carbon/alien/eyecheck()
return 2
/mob/living/carbon/alien/New()
..()
/mob/living/carbon/alien/proc/handle_environment(var/datum/gas_mixture/environment)
//If there are alien weeds on the ground then heal if needed or give some toxins
@@ -146,6 +143,21 @@
/mob/living/carbon/alien/Process_Spaceslipping()
return 0 // Don't slip in space.
/mob/living/carbon/alien/Stat()
stat(null, "Intent: [a_intent]")
stat(null, "Move Mode: [m_intent]")
..()
if (client.statpanel == "Status")
stat(null, "Plasma Stored: [getPlasma()]/[max_plasma]")
if(emergency_shuttle)
if(emergency_shuttle.online && emergency_shuttle.location < 2)
var/timeleft = emergency_shuttle.timeleft()
if (timeleft)
stat(null, "ETA-[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]")
/mob/living/carbon/alien/Stun(amount)
if(status_flags & CANSTUN)

View File

@@ -60,26 +60,6 @@
tally = -1 // hunters go supersuperfast
return (tally + move_delay_add + config.alien_delay)
//This needs to be fixed
/mob/living/carbon/alien/humanoid/Stat()
..()
statpanel("Status")
if (client && client.holder)
stat(null, "([x], [y], [z])")
stat(null, "Intent: [a_intent]")
stat(null, "Move Mode: [m_intent]")
if (client.statpanel == "Status")
stat(null, "Plasma Stored: [getPlasma()]")
if(emergency_shuttle)
if(emergency_shuttle.online && emergency_shuttle.location < 2)
var/timeleft = emergency_shuttle.timeleft()
if (timeleft)
stat(null, "ETA-[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]")
///mob/living/carbon/alien/humanoid/bullet_act(var/obj/item/projectile/Proj) taken care of in living
/mob/living/carbon/alien/humanoid/emp_act(severity)

View File

@@ -6,6 +6,8 @@
maxHealth = 25
health = 25
storedPlasma = 50
max_plasma = 50
var/amount_grown = 0
var/max_grown = 200
@@ -56,24 +58,12 @@
//This needs to be fixed
/mob/living/carbon/alien/larva/Stat()
..()
stat(null, "Progress: [amount_grown]/[max_grown]")
statpanel("Status")
if (client && client.holder)
stat(null, "([x], [y], [z])")
stat(null, "Intent: [a_intent]")
stat(null, "Move Mode: [m_intent]")
if (client.statpanel == "Status")
stat(null, "Progress: [amount_grown]/[max_grown]")
stat(null, "Plasma Stored: [getPlasma()]")
///mob/living/carbon/alien/larva/bullet_act(var/obj/item/projectile/Proj) taken care of in living
/mob/living/carbon/alien/larva/emp_act(severity)
..()
/mob/living/carbon/alien/larva/adjustToxLoss(amount)
if(stat != DEAD)
amount_grown = min(amount_grown + 1, max_grown)
..(amount)
/mob/living/carbon/alien/larva/ex_act(severity)

View File

@@ -5,8 +5,8 @@
var/const/MIN_IMPREGNATION_TIME = 100 //time it takes to impregnate someone
var/const/MAX_IMPREGNATION_TIME = 150
var/const/MIN_ACTIVE_TIME = 300 //time between being dropped and going idle
var/const/MAX_ACTIVE_TIME = 600
var/const/MIN_ACTIVE_TIME = 200 //time between being dropped and going idle
var/const/MAX_ACTIVE_TIME = 400
/obj/item/clothing/mask/facehugger
name = "alien"
@@ -79,7 +79,7 @@ var/const/MAX_ACTIVE_TIME = 600
Attach(M)
/obj/item/clothing/mask/facehugger/HasEntered(atom/target)
Attach(target)
HasProximity(target)
return
/obj/item/clothing/mask/facehugger/dropped()
@@ -203,5 +203,15 @@ var/const/MAX_ACTIVE_TIME = 600
return
/obj/item/clothing/mask/facehugger/HasProximity(atom/movable/AM as mob|obj)
if(istype(AM , /mob/living/))
if(CanHug(AM))
Attach(AM)
/proc/CanHug(var/mob/M)
if(!iscarbon(M) || isalien(M))
return 0
var/mob/living/carbon/C = M
if(ishuman(C))
var/mob/living/carbon/human/H = C
if(H.head && H.head.flags & HEADCOVERSMOUTH)
return 0
return 1

View File

@@ -48,20 +48,12 @@
var/mob/living/target_mob
/mob/living/simple_animal/clown/Life()
if(stat == DEAD)
walk(src,0)//STOP FUCKING MOVING GODDAMN
if(health > 0)
icon_state = icon_living
dead_mob_list -= src
living_mob_list += src
stat = CONSCIOUS
density = 1
..()
if(stat == 2)
new /obj/effect/landmark/corpse/clown (src.loc)
del src
return
if(health < 1)
Die()
if(health > maxHealth)
health = maxHealth

View File

@@ -14,6 +14,15 @@
stop_automated_movement = 1
status_flags = CANPARALYSE
attack_sound = 'sound/weapons/punch1.ogg'
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
/mob/living/simple_animal/construct/Life()

View File

@@ -0,0 +1,271 @@
#define SYNDICATE_STANCE_IDLE 1
#define SYNDICATE_STANCE_ATTACK 2
#define SYNDICATE_STANCE_ATTACKING 3
/mob/living/simple_animal/syndicate
name = "Syndicate Operative"
desc = "Death to Nanotrasen."
icon_state = "syndicate"
icon_living = "syndicate"
icon_dead = "syndicate_dead"
icon_gib = "syndicate_gib"
speak_chance = 0
turns_per_move = 5
response_help = "pokes the"
response_disarm = "shoves the"
response_harm = "hits the"
speed = -1
stop_automated_movement_when_pulled = 0
maxHealth = 75
health = 75
var/ranged = 0
var/target
var/rapid = 0
harm_intent_damage = 5
melee_damage_lower = 10
melee_damage_upper = 10
attacktext = "punches"
a_intent = "harm"
var/corpse = /obj/effect/landmark/corpse/syndicatesoldier
var/weapon1
var/weapon2
min_oxy = 5
max_oxy = 0
min_tox = 0
max_tox = 1
min_co2 = 0
max_co2 = 5
min_n2 = 0
max_n2 = 0
unsuitable_atoms_damage = 15
var/stance = SYNDICATE_STANCE_IDLE //Used to determine behavior
var/mob/living/target_mob
/mob/living/simple_animal/syndicate/Life()
..()
if(stat == 2)
new corpse (src.loc)
if(weapon1)
new weapon1 (src.loc)
if(weapon2)
new weapon2 (src.loc)
del src
return
if(health < 1)
Die()
if(health > maxHealth)
health = maxHealth
if(!ckey && !stop_automated_movement)
if(isturf(src.loc) && !resting && !buckled && canmove) //This is so it only moves if it's not inside a closet, gentics machine, etc.
turns_since_move++
if(turns_since_move >= turns_per_move)
if(!(stop_automated_movement_when_pulled && pulledby))
Move(get_step(src,pick(cardinal)))
turns_since_move = 0
if(!stat)
switch(stance)
if(SYNDICATE_STANCE_IDLE)
stop_automated_movement = 0
for( var/mob/living/L in viewers(7,src) )
if(isSyndicate(L)) continue
if(!L.stat)
stance = SYNDICATE_STANCE_ATTACK
target_mob = L
break
if(SYNDICATE_STANCE_ATTACK) //This one should only be active for one tick
stop_automated_movement = 1
if(!target_mob || target_mob.stat)
stance = SYNDICATE_STANCE_IDLE
if(target_mob in viewers(10,src))
if(ranged)
if(get_dist(src, target_mob) <= 6)
OpenFire(target_mob)
else
walk_to(src, target_mob, 1, 3)
else
walk_to(src, target_mob, 1, 3)
stance = SYNDICATE_STANCE_ATTACKING
if(SYNDICATE_STANCE_ATTACKING)
stop_automated_movement = 1
if(!target_mob || target_mob.stat)
stance = SYNDICATE_STANCE_IDLE
target_mob = null
return
if(!(target_mob in viewers(7,src)))
stance = SYNDICATE_STANCE_IDLE
target_mob = null
return
if(get_dist(src, target_mob) <= 1) //Attacking
if(isliving(target_mob))
var/mob/living/L = target_mob
L.attack_animal(src)
/mob/living/simple_animal/syndicate/proc/OpenFire(target_mob)
src.target = target_mob
visible_message("\red <b>[src]</b> fires at [src.target]!", 1)
var/tturf = get_turf(target)
if(rapid)
spawn(1)
Shoot(tturf, src.loc, src)
new /obj/item/ammo_casing/a12mm(get_turf(src))
spawn(4)
Shoot(tturf, src.loc, src)
new /obj/item/ammo_casing/a12mm(get_turf(src))
spawn(6)
Shoot(tturf, src.loc, src)
new /obj/item/ammo_casing/a12mm(get_turf(src))
else
Shoot(tturf, src.loc, src)
new /obj/item/ammo_casing/a12mm(get_turf(src))
stance = SYNDICATE_STANCE_ATTACK
return
/mob/living/simple_animal/syndicate/proc/Shoot(var/target, var/start, var/user, var/bullet = 0)
if(target == start)
return
var/obj/item/projectile/bullet/midbullet2/A = new /obj/item/projectile/bullet/midbullet2(user:loc)
playsound(user, 'sound/weapons/Gunshot_smg.ogg', 100, 1)
if(!A) return
if (!istype(target, /turf))
del(A)
return
A.current = target
A.yo = target:y - start:y
A.xo = target:x - start:x
spawn( 0 )
A.process()
return
///////////////Sword and shield////////////
/mob/living/simple_animal/syndicate/melee
melee_damage_lower = 30
melee_damage_upper = 30
icon_state = "syndicatemelee"
icon_living = "syndicatemelee"
weapon1 = /obj/item/weapon/melee/energy/sword/red
weapon2 = /obj/item/weapon/shield/energy
attacktext = "slashes"
/mob/living/simple_animal/syndicate/melee/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(O.force)
if(prob(35))
health -= O.force
visible_message("\red \b [src] has been attacked with the [O] by [user]. ")
else
visible_message("\red \b [src] blocks the [O] with its shield! ")
else
usr << "\red This weapon is ineffective, it does no damage."
visible_message("\red [user] gently taps [src] with the [O]. ")
/mob/living/simple_animal/syndicate/melee/bullet_act(var/obj/item/projectile/Proj)
if(!Proj) return
if(prob(35))
src.health -= Proj.damage
else
visible_message("\red <B>[src] blocks [Proj] with its shield!</B>")
return 0
/mob/living/simple_animal/syndicate/melee/space
min_oxy = 0
max_oxy = 0
min_tox = 0
max_tox = 0
min_co2 = 0
max_co2 = 0
min_n2 = 0
max_n2 = 0
minbodytemp = 0
icon_state = "syndicatemeleespace"
icon_living = "syndicatemeleespace"
name = "Syndicate Commando"
corpse = /obj/effect/landmark/corpse/syndicatecommando
/mob/living/simple_animal/syndicate/melee/space/Process_Spacemove(var/check_drift = 0)
return
/mob/living/simple_animal/syndicate/ranged
ranged = 1
rapid = 1
icon_state = "syndicateranged"
icon_living = "syndicateranged"
weapon1 = /obj/item/weapon/gun/projectile/automatic/c20r
/mob/living/simple_animal/syndicate/ranged/space
icon_state = "syndicaterangedpsace"
icon_living = "syndicaterangedpsace"
name = "Syndicate Commando"
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
corpse = /obj/effect/landmark/corpse/syndicatecommando
/mob/living/simple_animal/syndicate/ranged/space/Process_Spacemove(var/check_drift = 0)
return
/mob/living/simple_animal/syndicate/Bump(atom/movable/AM as mob|obj, yes)
spawn( 0 )
if ((!( yes ) || now_pushing))
return
now_pushing = 1
if(ismob(AM))
var/mob/tmob = AM
if(istype(tmob, /mob/living/carbon/human) && (FAT in tmob.mutations))
if(prob(5))
src << "\red <B>You fail to push [tmob]'s fat ass out of the way.</B>"
now_pushing = 0
return
if(tmob.nopush)
now_pushing = 0
return
tmob.LAssailant = src
now_pushing = 0
..()
if (!( istype(AM, /atom/movable) ))
return
if (!( now_pushing ))
now_pushing = 1
if (!( AM.anchored ))
var/t = get_dir(src, AM)
if (istype(AM, /obj/structure/window))
if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
for(var/obj/structure/window/win in get_step(AM,t))
now_pushing = 0
return
step(AM, t)
now_pushing = null
return
return

View File

@@ -75,6 +75,11 @@
return 1
return 0
/proc/isSyndicate(A)
if(istype(A, /mob/living/simple_animal/syndicate))
return 1
return 0
/proc/isclown(A)
if(istype(A, /mob/living/simple_animal/clown))
return 1

View File

@@ -18,6 +18,9 @@
stun = 5
weaken = 5
/obj/item/projectile/bullet/midbullet2
damage = 25
/obj/item/projectile/bullet/suffocationbullet//How does this even work?
name = "co bullet"
damage = 20

View File

@@ -697,6 +697,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato = list("ketchup" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/corn = list("cornoil" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/wheat = list("flour" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/cherries = list("cherryjelly" = 0),

View File

@@ -2136,6 +2136,19 @@ datum
if(!istype(T, /turf/space))
new /obj/effect/decal/cleanable/flour(T)
cherryjelly
name = "Cherry Jelly"
id = "cherryjelly"
description = "Totally the best. Only to be spread on foods with excellent lateral symmetry."
reagent_state = LIQUID
nutriment_factor = 1 * REAGENTS_METABOLISM
color = "#801E28" // rgb: 128, 30, 40
on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor
..()
return
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////// DRINKS BELOW, Beer is up there though, along with cola. Cap'n Pete's Cuban Spiced Rum////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -2696,9 +2709,8 @@ datum
return
reaction_turf(var/turf/simulated/T, var/volume)
if(volume >= 3)
if(!istype(T)) return
T.Bless()
if(!istype(T)) return
T.Bless()
tequilla
name = "Tequila"
@@ -3633,8 +3645,6 @@ datum
..()
return
////////////////////////// REMOVED COCKTAIL REAGENTS BELOW:: RE-ENABLE THEM IF THEY EVER GET SPRITES THAT DON'T LOOK FUCKING STUPID --Agouri ///////////////////////////
sbiten
name = "Sbiten"
id = "sbiten"

View File

@@ -384,6 +384,36 @@
src.name = "Frosted Jelly Donut"
reagents.add_reagent("sprinkles", 2)
/obj/item/weapon/reagent_containers/food/snacks/donut/rorojelly
name = "Jelly Donut"
desc = "You jelly?"
icon_state = "jdonut1"
New()
..()
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("sprinkles", 1)
reagents.add_reagent("rorojelly", 5)
bitesize = 5
if(prob(30))
src.icon_state = "jdonut2"
src.name = "Frosted Jelly Donut"
reagents.add_reagent("sprinkles", 2)
/obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly
name = "Jelly Donut"
desc = "You jelly?"
icon_state = "jdonut1"
New()
..()
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("sprinkles", 1)
reagents.add_reagent("cherryjelly", 5)
bitesize = 5
if(prob(30))
src.icon_state = "jdonut2"
src.name = "Frosted Jelly Donut"
reagents.add_reagent("sprinkles", 2)
/obj/item/weapon/reagent_containers/food/snacks/egg
name = "egg"
desc = "An egg!"
@@ -1443,27 +1473,45 @@
reagents.add_reagent("water", 5)
bitesize = 10
/obj/item/weapon/reagent_containers/food/snacks/rorotoast
name = "Roro Toast"
/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast
name = "Jellied Toast"
desc = "A slice of bread covered with delicious jam."
icon_state = "rorotoast"
trash = /obj/item/trash/plate
New()
..()
reagents.add_reagent("nutriment", 1)
reagents.add_reagent("rorojelly", 5)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/roroburger
name = "Roro Burger"
desc = "A very toxic and tasty burger."
/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/cherry
New()
..()
reagents.add_reagent("cherryjelly", 5)
/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/roro
New()
..()
reagents.add_reagent("rorojelly", 5)
/obj/item/weapon/reagent_containers/food/snacks/jellyburger
name = "Jelly Burger"
desc = "Culinary delight..?"
icon_state = "roroburger"
New()
..()
reagents.add_reagent("nutriment", 1)
reagents.add_reagent("rorojelly", 5)
reagents.add_reagent("nutriment", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/jellyburger/roro
New()
..()
reagents.add_reagent("rorojelly", 5)
/obj/item/weapon/reagent_containers/food/snacks/jellyburger/cherry
New()
..()
reagents.add_reagent("cherryjelly", 5)
/obj/item/weapon/reagent_containers/food/snacks/milosoup
name = "Milosoup"
desc = "The universes best soup! Yum!!!"
@@ -1572,6 +1620,16 @@
reagents.add_reagent("nutriment", 4)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/cherrypie
name = "Cherry Pie"
desc = "Taste so good, make a grown man cry."
icon_state = "cherrypie"
New()
..()
reagents.add_reagent("nutriment", 4)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/twobread
name = "Two Bread"
desc = "It is very bitter and winy."
@@ -1581,17 +1639,26 @@
reagents.add_reagent("nutriment", 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/rorosandwich
name = "Roro Sandwich"
desc = "You think you can see someone's face in the toast!"
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich
name = "Jelly Sandwich"
desc = "You wish you had some peanut butter to go with this..."
icon_state = "rorosandwich"
trash = /obj/item/trash/plate
New()
..()
reagents.add_reagent("nutriment", 2)
reagents.add_reagent("rorojelly", 5)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/roro
New()
..()
reagents.add_reagent("rorojelly", 5)
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry
New()
..()
reagents.add_reagent("cherryjelly", 5)
/obj/item/weapon/reagent_containers/food/snacks/boiledrorocore
name = "Boiled Roro Core"
desc = "A boiled red thing."

View File

@@ -106,6 +106,7 @@
name = "cherries"
desc = "Great for toppings!"
icon_state = "cherry"
gender = PLURAL
New()
..()
spawn(5) //So potency can be set in the proc that creates these crops