More delay issues, magboots, knive-boot, marble and ccia (#1586)

- Fixes #1583
- Fixes #1031 
-adds some checks for magboots
-reduces the hardness of marble
-finally adds a delay when attacking common mobs with weapons
-finally adds a delay of cult mobs attacking things, like machines
-fix the flash pistol having no flash rounds
-fully remove custom items gloves from spawning from cargo
-replace all the references of ahdomai and S'randarr with Adhomai and S'rendarr
-import a bay fixe to hud runtimes
-removes christmas pun pun
-replace the old appearance that the ccia used with the newest and most robust one
-do more changes on the ccia code at ccia request, also, removes all the red and blue shit from it
This commit is contained in:
Alberyk
2017-01-18 14:56:06 -02:00
committed by skull132
parent 933aaf386c
commit f253c2c381
16 changed files with 65 additions and 95 deletions

View File

@@ -671,7 +671,10 @@ var/list/global/random_stock_large = list(
var/list/exclusion = list(/obj/item/clothing/gloves,
/obj/item/clothing/gloves/fluff,
/obj/item/clothing/gloves/swat/bst)
/obj/item/clothing/gloves/swat/bst,
/obj/item/clothing/gloves/swat/fluff/hawk_gloves,
/obj/item/clothing/gloves/fluff/stone_ring,
/obj/item/clothing/gloves/black/fluff/kathleen_glove)
exclusion += typesof(/obj/item/clothing/gloves/rig)
exclusion += typesof(/obj/item/clothing/gloves/lightrig)
allgloves -= exclusion

View File

@@ -13,15 +13,15 @@
return
if(ticker.current_state < GAME_STATE_PLAYING)
src << "\red The game hasn't started yet!"
src << "<span class='warning'>The game hasn't started yet!</span>"
return
if(istype(mob, /mob/new_player))
src << "\red You can't be in the lobby to join as a duty officer"
src << "<span class='warning'>You can't be in the lobby to join as a duty officer.</span>"
return
if(mob.mind && mob.mind.special_role == "CCIA Agent")
src << "\red You are already a CCIA Agent"
src << "<span class='warning'>You are already a CCIA Agent.</span>"
verbs += /client/proc/returntobody
return
@@ -35,59 +35,6 @@
var/new_name = input(usr, "Pick a name","Name") as null|text
var/mob/living/carbon/human/M = new(null)
var/new_facial = input("Please select facial hair color.", "Character Generation") as color
if(new_facial)
M.r_facial = hex2num(copytext(new_facial, 2, 4))
M.g_facial = hex2num(copytext(new_facial, 4, 6))
M.b_facial = hex2num(copytext(new_facial, 6, 8))
var/new_hair = input("Please select hair color.", "Character Generation") as color
if(new_facial)
M.r_hair = hex2num(copytext(new_hair, 2, 4))
M.g_hair = hex2num(copytext(new_hair, 4, 6))
M.b_hair = hex2num(copytext(new_hair, 6, 8))
var/new_eyes = input("Please select eye color.", "Character Generation") as color
if(new_eyes)
M.r_eyes = hex2num(copytext(new_eyes, 2, 4))
M.g_eyes = hex2num(copytext(new_eyes, 4, 6))
M.b_eyes = hex2num(copytext(new_eyes, 6, 8))
var/new_tone = input("Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation") as text
if (!new_tone)
new_tone = 35
M.s_tone = max(min(round(text2num(new_tone)), 220), 1)
M.s_tone = -M.s_tone + 35
// hair
var/list/all_hairs = typesof(/datum/sprite_accessory/hair) - /datum/sprite_accessory/hair
var/list/hairs = list()
// loop through potential hairs
for(var/x in all_hairs)
var/datum/sprite_accessory/hair/H = new x
hairs.Add(H.name)
qdel(H)
//hair
var/new_hstyle = input(usr, "Select a hair style", "Grooming") as null|anything in hair_styles_list
if(new_hstyle)
M.h_style = new_hstyle
// facial hair
var/new_fstyle = input(usr, "Select a facial hair style", "Grooming") as null|anything in facial_hair_styles_list
if(new_fstyle)
M.f_style = new_fstyle
var/new_gender = alert(usr, "Please select gender.", "Character Generation", "Male", "Female")
if (new_gender)
if(new_gender == "Male")
M.gender = MALE
else
M.gender = FEMALE
//M.rebuild_appearance()
M.update_hair()
M.update_body()
M.check_dna(M)
M.real_name = new_name
@@ -96,12 +43,12 @@
if(!M.age)
M.age = rand(35,50)
if(M.age < 33 || M.age > 60)
src << "\red The age you selected was not in a valid range for a Duty Officer"
src << "<span class='warning'>The age you selected was not in a valid range for a Duty Officer.</span>"
if(M.age < 33)
M.age = 33
else
M.age = 60
src << "\red Your age has been set to [M.age]"
src << "<span class='warning'>Your age has been set to [M.age].</span>"
M.dna.ready_dna(M)
@@ -116,6 +63,8 @@
M.loc = L.loc
M.key = key
M.change_appearance(APPEARANCE_ALL, M.loc, check_species_whitelist = 1)
if(wasLiving)
clear_cciaa_job(holder.original_mob)
spawn(1)
@@ -124,22 +73,26 @@
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/ert/ccia(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/clothing/head/beret/centcom/officer(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/spray/pepper(M), slot_l_store)
M.equip_to_slot_or_del(new /obj/item/device/taperecorder/cciaa(M), slot_r_store)
var/obj/item/clothing/suit/storage/toggle/internalaffairs/suit = new(M)
suit.name = "central command internal affairs jacket"
M.equip_to_slot_or_del(suit, slot_wear_suit)
var/obj/item/weapon/storage/backpack/satchel/bag = new(M)
bag.name = "officer's leather satchel"
bag.desc = "A well cared for leather satchel for Nanotrasen officers."
M.equip_to_slot_or_del(bag, slot_back)
if(M.backbag == 1)
M.equip_to_slot_or_del(new /obj/item/weapon/stamp/centcomm(M.back), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/stamp/centcomm(M), slot_in_backpack)
var /obj/item/weapon/storage/lockbox/lockbox = new(M)
lockbox.req_access = list(access_cent_captain)
lockbox.name = "A CCIA Agent briefcase"
lockbox.name = "CCIA agent briefcase"
lockbox.desc = "A smart looking briefcase with a NT logo on the side"
lockbox.storage_slots = 8
lockbox.max_storage_space = 16
@@ -198,7 +151,7 @@
return
if(!is_type_in_list(A,centcom_areas))
src << "\red You need to be back at central to do this"
src << "<span class='warning'>You need to be back at central to do this.</span>"
return
if(holder.original_mob)
@@ -246,11 +199,11 @@
set category = "Special Verbs"
if (!check_rights(R_ADMIN|R_CCIAA|R_FUN))
usr << "\red You do not have enough powers to do this."
usr << "<span class='warning'>You do not have enough powers to do this.</span>"
return
if (!department)
usr << "\red No target department specified!"
usr << "<span class='warning'>No target department specified!</span>"
return
var/obj/machinery/photocopier/faxmachine/fax = null
@@ -261,18 +214,18 @@
break
if (!fax)
usr << "\red Couldn't find a fax machine to send this to!"
usr << "<span class='warning'>Couldn't find a fax machine to send this to!</span>"
return
//todo: sanitize
var/input = input(usr, "Please enter a message to reply to via secure connection. NOTE: BBCode does not work, but HTML tags do! Use <br> for line breaks.", "Outgoing message from Centcomm", "") as message|null
if (!input)
usr << "\red Cancelled."
usr << "<span class='warning'>Cancelled.</span>"
return
var/customname = input(usr, "Pick a title for the report", "Title") as text|null
if (!customname)
usr << "\red Cancelled."
usr << "<span class='warning'>Cancelled.</span>"
return
// Create the reply message
@@ -291,12 +244,12 @@
P.stamps += "<HR><i>This paper has been stamped by the Central Command Quantum Relay.</i>"
if(fax.recievefax(P))
usr << "\blue Message transmitted successfully."
usr << "<span class='notice'>Message transmitted successfully.</span>"
log_and_message_admins("sent a fax message to the [department] fax machine. (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[fax.x];Y=[fax.y];Z=[fax.z]'>JMP</a>)")
sent_faxes += P
else
usr << "\red Message reply failed."
usr << "<span class='warning'>Message reply failed.</span>"
qdel(P)
return
@@ -306,7 +259,7 @@
set category = "Special Verbs"
if (!check_rights(R_ADMIN|R_CCIAA|R_FUN))
usr << "\red You do not have enough powers to do this."
usr << "<span class='warning'>You do not have enough powers to do this.</span>"
return
var/data = "<center><a href='?_src_=holder;CentcommFaxReply=1'>Send New Fax</a></center>"

View File

@@ -251,3 +251,13 @@
/obj/item/device/taperecorder/cciaa/explode()
return
//ccia headset, only command and ert channel are on by default
/obj/item/device/radio/headset/ert/ccia
name = "central command internal affairs radio headset"
ks2type = /obj/item/device/encryptionkey/ert
/obj/item/device/encryptionkey/ccia
name = "\improper CCIA radio encryption key"
channels = list("Response Team" = 1, "Science" = 0, "Command" = 1, "Medical" = 0, "Engineering" = 0, "Security" = 0, "Supply" = 0, "Service" = 0)

View File

@@ -434,7 +434,7 @@ BLIND // can't see anything
holding.forceMove(get_turf(usr))
if(usr.put_in_hands(holding))
usr.visible_message("<span class='danger'>\The [usr] pulls a knife out of their boot!</span>")
usr.visible_message("<span class='danger'>\The [usr] pulls \a [holding] out of their boot!</span>")
holding = null
else
usr << "<span class='warning'>Your need an empty, unbroken hand to do that.</span>"

View File

@@ -60,11 +60,15 @@
/obj/item/clothing/shoes/magboots/dropped()
..()
if(!wearer)
return
var/mob/living/carbon/human/H = wearer
if(shoes)
if(shoes && istype(H))
if(!H.equip_to_slot_if_possible(shoes, slot_shoes))
shoes.forceMove(get_turf(src))
src.shoes = null
wearer.update_floating()
wearer = null
/obj/item/clothing/shoes/magboots/examine(mob/user)
@@ -72,4 +76,4 @@
var/state = "disabled"
if(item_flags & NOSLIP)
state = "enabled"
user << "Its mag-pulse traction system appears to be [state]."
user << "Its mag-pulse traction system appears to be [state]."

View File

@@ -82,9 +82,9 @@
if(MOVIE_RELEASE)
body += "From the [pick("desk","home town","homeworld","mind")] of [pick("acclaimed","award-winning","popular","stellar")] \
[pick("playwright","author","director","actor","TV star")] [random_name(pick(MALE,FEMALE))] comes the latest sensation: '\
[pick("Deadly","The last","Lost","Dead")] [pick("Starships","Warriors","outcasts","Tajarans","Unathi","Skrell")] \
[pick("Deadly","The last","Lost","Dead")] [pick("Starships","Warriors","outcasts","Tajaran","Unathi","Skrell")] \
[pick("of","from","raid","go hunting on","visit","ravage","pillage","destroy")] \
[pick("Moghes","Earth","Biesel","Ahdomai","S'randarr","the Void","the Edge of Space")]'.\
[pick("Moghes","Earth","Biesel","Adhomai","S'rendarr","the Void","the Edge of Space")]'.\
. Own it on webcast today, or visit the galactic premier on [affected_dest.name]!"
if(BIG_GAME_HUNTERS)
@@ -140,7 +140,7 @@
"Pens proclaim pencils obsolete, 'lead is dead'.",\
"Rock and paper sues scissors for discrimination.",\
"Steak tell-all book reveals he never liked sitting by potato.",\
"Woodchuck stops counting how many times he<EFBFBD>s chucked 'Never again'.",\
"Woodchuck stops counting how many times he’s chucked 'Never again'.",\
"[affected_dest.name] clerk first person able to pronounce '@*$%!'.",\
"[affected_dest.name] delis serving boiled paperback dictionaries, 'Adjectives chewy' customers declare.",\
"[affected_dest.name] weather deemed 'boring'; meteors and rad storms to be imported.",\
@@ -156,8 +156,8 @@
"Skrell marries computer; wedding attended by 100 modems.",\
"Chef reports successfully using harmonica as cheese grater.",\
"[company_name] invents handkerchief that says 'Bless you' after sneeze.",\
"Clone accused of posing for other clones<EFBFBD>s school photo.",\
"Clone accused of stealing other clones<EFBFBD>s employee of the month award.",\
"Clone accused of posing for other clones’s school photo.",\
"Clone accused of stealing other clones’s employee of the month award.",\
"Woman robs station with hair dryer; crewmen love new style.",\
"This space for rent.",\
"[affected_dest.name] Baker Wins Pickled Crumpet Toss Three Years Running",\

View File

@@ -15,9 +15,9 @@
else
var/language_type = pick(/datum/language/human,/datum/language/diona,/datum/language/tajaran,/datum/language/unathi)
var/datum/language/L = new language_type()
var/team = pick("Brickburn Galaxy Trekers","Mars Rovers", "Qerrbalak Saints", "Moghes Rockets", "Ahdomai Lightening")
var/team = pick("Tau Ceti Galaxy Trekers","Martian Raiders", "Qerrbalak Saints", "Moghes Rockets", "Adhomai Lightening")
P.name = "[L.get_random_name(pick(MALE,FEMALE))], [year - rand(0,50)] [team]"
P.card_icon = "spaceball_standard"
P.back_icon = "card_back_spaceball"
cards += P
cards += P

View File

@@ -312,7 +312,7 @@ var/list/name_to_material
name = "marble"
icon_colour = "#AAAAAA"
weight = 26
hardness = 100
hardness = 70
integrity = 201 //hack to stop kitchen benches being flippable, todo: refactor into weight system
stack_type = /obj/item/stack/material/marble

View File

@@ -42,7 +42,7 @@
/datum/language/tajaran
name = LANGUAGE_SIIK_MAAS
desc = "The traditionally employed tongue of Ahdomai, composed of expressive yowls and chirps. Native to the Tajaran."
desc = "The traditionally employed tongue of Adhomai, composed of expressive yowls and chirps. Native to the Tajaran."
speech_verb = "mrowls"
ask_verb = "mrowls"
exclaim_verb = "yowls"

View File

@@ -1387,7 +1387,7 @@
/mob/living/carbon/human/proc/handle_hud_list()
if (BITTEST(hud_updateflag, HEALTH_HUD))
if (BITTEST(hud_updateflag, HEALTH_HUD)&& hud_list[HEALTH_HUD])
var/image/holder = hud_list[HEALTH_HUD]
if(stat == DEAD)
holder.icon_state = "hudhealth-100" // X_X
@@ -1404,7 +1404,7 @@
holder.icon_state = "hud[percentage_health]"
hud_list[HEALTH_HUD] = holder
if (BITTEST(hud_updateflag, LIFE_HUD))
if (BITTEST(hud_updateflag, LIFE_HUD)&& hud_list[LIFE_HUD])
var/image/holder = hud_list[LIFE_HUD]
if(stat == DEAD)
holder.icon_state = "huddead"
@@ -1412,7 +1412,7 @@
holder.icon_state = "hudhealthy"
hud_list[LIFE_HUD] = holder
if (BITTEST(hud_updateflag, STATUS_HUD))
if (BITTEST(hud_updateflag, STATUS_HUD)&& hud_list[STATUS_HUD] && hud_list[STATUS_HUD_OOC])
var/foundVirus = 0
for(var/datum/disease/D in viruses)
if(!D.hidden[SCANNER])
@@ -1453,7 +1453,7 @@
hud_list[STATUS_HUD] = holder
hud_list[STATUS_HUD_OOC] = holder2
if (BITTEST(hud_updateflag, ID_HUD))
if (BITTEST(hud_updateflag, ID_HUD) && hud_list[WANTED_HUD])
var/image/holder = hud_list[ID_HUD]
//The following function is found in code/defines/procs/hud.dm

View File

@@ -10,10 +10,7 @@
spawn(1)
name = "Pun Pun"
real_name = name
if(prob(10))
w_uniform = new /obj/item/clothing/under/nupnup(src)
else
w_uniform = new /obj/item/clothing/under/punpun(src)
w_uniform = new /obj/item/clothing/under/punpun(src)
/obj/item/clothing/under/nupnup
name = "christmas uniform"
@@ -27,4 +24,4 @@
spawn(1)
name = "Winston, the Christmas Monkey"
real_name = name
w_uniform = new /obj/item/clothing/under/nupnup(src)
w_uniform = new /obj/item/clothing/under/nupnup(src)

View File

@@ -124,7 +124,7 @@
sprint_speed_factor = 0.65
sprint_cost_factor = 0.75
blurb = "The Tajaran race is a species of feline-like bipeds hailing from the planet of Ahdomai in the S'randarr \
blurb = "The Tajaran race is a species of feline-like bipeds hailing from the planet of Adhomai in the S'rendarr \
system. They have been brought up into the space age by the Humans and Skrell, who alledgedly influenced their \
eventual revolution that overthrew their ancient monarchies to become totalitarian - and NanoTrasen friendly - \
republics. Adhomai is still enduring a global war in the aftermath of the new world order, and many Tajara are \

View File

@@ -85,6 +85,7 @@
user << msg
/mob/living/simple_animal/construct/UnarmedAttack(var/atom/A, var/proximity)
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
if(istype(A, /obj/effect/rune))
var/obj/effect/rune/R = A
do_attack_animation(R)

View File

@@ -397,6 +397,7 @@ mob/living/simple_animal/bullet_act(var/obj/item/projectile/Proj)
//TODO: refactor mob attackby(), attacked_by(), and friends.
/mob/living/simple_animal/proc/attacked_with_item(var/obj/item/O, var/mob/user)
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
if(!O.force)
visible_message("<span class='notice'>[user] gently taps [src] with \the [O].</span>")
return 0

View File

@@ -10,7 +10,7 @@
load_method = MAGAZINE
/obj/item/weapon/gun/projectile/colt/detective
magazine_type = /obj/item/ammo_magazine/c45m/flash
magazine_type = /obj/item/ammo_magazine/c45m/rubber
/obj/item/weapon/gun/projectile/colt/detective/verb/rename_gun()
set name = "Name Gun"
@@ -46,6 +46,7 @@
/obj/item/weapon/gun/projectile/sec/flash
name = ".45 signal pistol"
magazine_type = /obj/item/ammo_magazine/c45m/flash
/obj/item/weapon/gun/projectile/sec/wood
desc = "A Nanotrasen designed sidearm, this one has a sweet wooden grip. Uses .45 rounds."