Commit f26d4dbb authored by Skullyton's avatar Skullyton Committed by Intigracy
Browse files

Adds new virus effects, adds virus say handling (#12496)

* Adds new virus effects, adds virus say handling

* Removes fun

* Slap it with standards

* Soon?

* Removes magic numbers, adds rounding, fixes shit
parent 66e2d4d6
......@@ -81,6 +81,17 @@
eyeprot = 1
species_fit = list(VOX_SHAPED, GREY_SHAPED)
/obj/item/clothing/glasses/sunglasses/virus
/obj/item/clothing/glasses/sunglasses/virus/dropped(mob/user as mob)
canremove = 1
..()
/obj/item/clothing/glasses/sunglasses/virus/equipped(var/mob/user, var/slot)
if (slot == slot_glasses)
canremove = 0
..()
/obj/item/clothing/glasses/sunglasses/kick_act(mob/living/carbon/human/H)
H.visible_message("<span class='danger'>[H] stomps on \the [src], crushing them!</span>", "<span class='danger'>You crush \the [src] under your foot.</span>")
playsound(get_turf(src), "shatter", 50, 1)
......
......@@ -182,6 +182,9 @@
mob.Blend(earbit, ICON_OVERLAY)
mob2.Blend(earbit2, ICON_OVERLAY)
/obj/item/clothing/head/kitty/cursed
canremove = 0
/obj/item/clothing/head/butt
name = "butt"
desc = "So many butts, so little time."
......
......@@ -170,14 +170,19 @@
canstage = 0
//TODO species_fit = list("Vox")
/obj/item/clothing/mask/gas/virusclown_hat //why isn't this just a subtype of clown_hat???????
name = "clown wig and mask"
desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask."
icon_state = "clown"
item_state = "clown_hat"
species_fit = list(VOX_SHAPED)
can_flip = 0
canstage = 0
/obj/item/clothing/mask/gas/clown_hat/virus //why isn't this just a subtype of clown_hat??????? //Is now
desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask. <span class = 'notice'>On second look, it looks like it's coming out of the wearers skin!</span>"
/obj/item/clothing/mask/gas/clown_hat/virus/dropped(mob/user as mob)
canremove = 1
..()
/obj/item/clothing/mask/gas/clown_hat/virus/equipped(var/mob/user, var/slot)
if (slot == slot_wear_mask)
canremove = 0
can_flip = 0
..()
/obj/item/clothing/mask/gas/sexyclown
name = "sexy-clown wig and mask"
......
......@@ -109,6 +109,18 @@
if(src.voicechange)
speech.message = pick("NEEIIGGGHHHH!", "NEEEIIIIGHH!", "NEIIIGGHH!", "HAAWWWWW!", "HAAAWWW!")
/obj/item/clothing/mask/horsehead/magic
voicechange = 1 //NEEEEIIGHH
/obj/item/clothing/mask/horsehead/magic/dropped(mob/user as mob)
canremove = 1
..()
/obj/item/clothing/mask/horsehead/magic/equipped(var/mob/user, var/slot)
if (slot == slot_wear_mask)
canremove = 0 //curses!
..()
/obj/item/clothing/mask/chapmask
name = "venetian mask"
desc = "A plain porcelain mask that covers the entire face. Standard attire for particularly unspeakable religions. The eyes are wide shut."
......
......@@ -245,6 +245,22 @@
/obj/item/clothing/shoes/clown_shoes/stickymagic/acidable()
return 0
/obj/item/clothing/shoes/clown_shoes/slippy
canremove = 0
var/lube_chance = 10
/obj/item/clothing/shoes/clown_shoes/slippy/step_action() //The honkpocalypse is here
..()
if(ishuman(loc) && prob(lube_chance))
var/mob/living/carbon/human/mob = loc
if(istype(mob.loc,/turf/simulated))
var/turf/simulated/T = mob.loc
T.wet(800, TURF_WET_LUBE)
/obj/item/clothing/shoes/clown_shoes/slippy/dropped(mob/user as mob)
canremove = 1
..()
#undef CLOWNSHOES_RANDOM_SOUND
/obj/item/clothing/shoes/jackboots
......
......@@ -46,7 +46,13 @@
temp_message[H] = "HONK"
pick_list -= H //Make sure that you dont HONK the same word twice
speech.message = jointext(temp_message, " ")
if(virus2.len)
for(var/ID in virus2)
var/datum/disease2/disease/V = virus2[ID]
for(var/datum/disease2/effectholder/EFH in V.effects)
var/datum/disease2/effect/effect = EFH.effect
if(effect.affect_voice && effect.affect_voice_active)
effect.affect_mob_voice(speech)
..(speech)
if(dna)
species.handle_speech(speech,src)
......
......@@ -35,8 +35,8 @@
scancount += SP.rating-1
if(istype(SP, /obj/item/weapon/stock_parts/micro_laser))
lasercount += SP.rating-1
minimum_growth = initial(minimum_growth) - (scancount * 3)
process_time = initial(process_time) - lasercount
minimum_growth = round((initial(minimum_growth) - (scancount * 3)))
process_time = round((initial(process_time) - lasercount))
/obj/machinery/disease2/diseaseanalyser/attackby(var/obj/I as obj, var/mob/user as mob)
..()
......
......@@ -34,7 +34,7 @@
for(var/obj/item/weapon/stock_parts/SP in component_parts)
if(istype(SP, /obj/item/weapon/stock_parts/manipulator))
manipcount += SP.rating
general_process_time = initial(general_process_time) / manipcount
general_process_time = round((initial(general_process_time) / manipcount))
/obj/machinery/centrifuge/attackby(var/obj/item/weapon/reagent_containers/glass/beaker/vial/I, var/mob/user as mob)
if(!istype(I))
......
......@@ -212,11 +212,11 @@ var/global/list/virusDB = list()
/datum/disease2/disease/proc/get_info()
var/r = "GNAv2 based virus lifeform - [name()], #[add_zero("[uniqueID]", 4)]"
r += "<BR>Infection rate : [infectionchance * 10]"
r += "<BR>Infection rate : [infectionchance]"
r += "<BR>Spread form : [spreadtype]"
r += "<BR>Progress Speed : [stageprob * 10]"
r += "<BR>Progress Speed : [stageprob]"
for(var/datum/disease2/effectholder/E in effects)
r += "<BR>Effect:[E.effect.name]. Strength : [E.multiplier * 8]. Verosity : [E.chance * 15]. Type : [5-E.stage]."
r += "<BR>Effect:[E.effect.name]. Strength : [E.multiplier]. Verosity : [E.chance]. Type : [5-E.stage]."
r += "<BR>Antigen pattern: [antigens2string(antigen)]"
return r
......
......@@ -48,7 +48,7 @@
scancount += SP.rating-1
if(istype(SP, /obj/item/weapon/stock_parts/micro_laser))
lasercount += SP.rating-1
mutatechance = initial(mutatechance) + scancount
mutatechance = initial(mutatechance) * scancount
growthrate = initial(growthrate) + lasercount
/obj/machinery/disease2/incubator/attackby(var/obj/B as obj, var/mob/user as mob)
......
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment