Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into HereWeGoAgain

This commit is contained in:
Aurorablade
2018-08-10 00:43:49 -04:00
194 changed files with 11710 additions and 8374 deletions
@@ -59,6 +59,7 @@
/obj/item/megaphone/proc/saymsg(mob/living/user as mob, message)
audible_message("<span class='game say'><span class='name'>[user]</span> broadcasts, <span class='reallybig'>\"[message]\"</span></span>", hearing_distance = 14)
log_say(message, user)
for(var/obj/O in oview(14, get_turf(src)))
O.hear_talk(user, "<span class='reallybig'>[message]</span>")
@@ -98,4 +98,8 @@
/obj/item/pizza_bomb/New()
..()
correct_wire = pick(wires)
correct_wire = pick(wires)
/obj/item/pizza_bomb/autoarm
timer_set = 1
timer = 10
@@ -54,9 +54,15 @@
name = "suspicious beacon"
desc = "A label on it reads: <i>Activate to have a singularity beacon teleported to your location</i>."
origin_tech = "bluespace=6;syndicate=5"
syndicate = 1
syndicate = TRUE
var/obj/machinery/computer/syndicate_depot/teleporter/mycomputer
/obj/item/radio/beacon/syndicate/attack_self(mob/user as mob)
/obj/item/radio/beacon/syndicate/Destroy()
if(mycomputer)
mycomputer.mybeacon = null
return ..()
/obj/item/radio/beacon/syndicate/attack_self(mob/user)
if(user)
to_chat(user, "<span class='notice'>Locked In</span>")
new /obj/machinery/power/singularity_beacon/syndicate( user.loc )
@@ -69,7 +75,7 @@
desc = "A label on it reads: <i>Warning: Activating this device will send a high-ordinance explosive to your location</i>."
origin_tech = "bluespace=5;syndicate=5"
/obj/item/radio/beacon/syndicate/bomb/attack_self(mob/user as mob)
/obj/item/radio/beacon/syndicate/bomb/attack_self(mob/user)
if(user)
to_chat(user, "<span class='notice'>Locked In</span>")
new /obj/machinery/syndicatebomb( user.loc )
+21
View File
@@ -27,3 +27,24 @@
name = "'Blue' secret documents"
desc = "\"Top Secret\" documents printed on special copy-protected paper. It details sensitive Syndicate operational intelligence. These documents are marked \"Blue\"."
icon_state = "docs_blue"
/obj/item/documents/syndicate/yellow
name = "'Yellow' secret documents"
desc = "\"Top Secret\" documents printed on special copy-protected paper. It details sensitive Syndicate operational intelligence. These documents are marked \"Yellow\"."
icon_state = "docs_yellow"
/obj/item/documents/syndicate/yellow/trapped
desc = "\"Top Secret\" documents printed on special copy-protected paper. It details sensitive Syndicate operational intelligence. These documents are marked \"Yellow\", and have a thin film of clear material covering their surface."
var/poison_type = "amanitin"
var/poison_dose = 20
var/poison_total = 60
/obj/item/documents/syndicate/yellow/trapped/pickup(user)
if(ishuman(user) && poison_total > 0)
var/mob/living/carbon/human/H = user
var/obj/item/clothing/gloves/G = H.gloves
if(!istype(G) || G.transfer_prints)
H.reagents.add_reagent(poison_type, poison_dose)
poison_total -= poison_dose
add_attack_logs(src, user, "Picked up [src], the trapped syndicate documents")
..()
+1 -3
View File
@@ -130,8 +130,7 @@
/obj/item/storage/pill_bottle/random_meds/New()
..()
var/i = 1
while(i < storage_slots)
for(var/i in 1 to storage_slots)
var/list/possible_medicines = standard_medicines.Copy()
if(prob(50))
possible_medicines += rare_medicines.Copy()
@@ -144,7 +143,6 @@
P.reagents.add_reagent(R, rand(2, 5)*10)
P.name = "Unlabelled Pill"
P.desc = "Something about this pill entices you to try it, against your better judgement."
i++
pixel_x = rand(-10, 10)
pixel_y = rand(-10, 10)
+4 -2
View File
@@ -89,11 +89,13 @@
var/nrembrute = rembrute
var/nremburn = remburn
affecting.heal_damage(heal_brute, heal_burn)
var/list/achildlist = affecting.children.Copy()
var/list/achildlist
if(!isnull(affecting.children))
achildlist = affecting.children.Copy()
var/parenthealed = FALSE
while(rembrute + remburn > 0) // Don't bother if there's not enough leftover heal
var/obj/item/organ/external/E
if(achildlist.len)
if(LAZYLEN(achildlist))
E = pick_n_take(achildlist) // Pick a random children and then remove it from the list
else if(affecting.parent && !parenthealed) // If there's a parent and no healing attempt was made on it
E = affecting.parent
+34 -54
View File
@@ -362,7 +362,6 @@
desc = "Mini-Mecha action figure! Collect them all! 4/11."
icon_state = "gygaxtoy"
/obj/item/toy/prize/durand
name = "toy durand"
desc = "Mini-Mecha action figure! Collect them all! 5/11."
@@ -399,18 +398,6 @@
icon_state = "phazonprize"
/obj/item/toy/katana
name = "replica katana"
desc = "Woefully underpowered in D20."
icon_state = "katana"
item_state = "katana"
flags = CONDUCT
slot_flags = SLOT_BELT | SLOT_BACK
force = 5
throwforce = 5
w_class = WEIGHT_CLASS_NORMAL
attack_verb = list("attacked", "slashed", "stabbed", "sliced")
/*
|| A Deck of Cards for playing various games of chance ||
@@ -450,7 +437,7 @@ obj/item/toy/cards/deck
obj/item/toy/cards/deck/New()
..()
icon_state = "deck_[deckstyle]_full"
for(var/i = 2; i <= 10; i++)
for(var/i in 2 to 10)
cards += "[i] of Hearts"
cards += "[i] of Spades"
cards += "[i] of Clubs"
@@ -472,7 +459,6 @@ obj/item/toy/cards/deck/New()
cards += "Ace of Clubs"
cards += "Ace of Diamonds"
obj/item/toy/cards/deck/attack_hand(mob/user as mob)
var/choice = null
if(cards.len == 0)
@@ -489,12 +475,7 @@ obj/item/toy/cards/deck/attack_hand(mob/user as mob)
H.pickup(user)
user.put_in_active_hand(H)
visible_message("<span class='notice'>[user] draws a card from the deck.</span>", "<span class='notice'>You draw a card from the deck.</span>")
if(cards.len > 26)
icon_state = "deck_[deckstyle]_full"
else if(cards.len > 10)
icon_state = "deck_[deckstyle]_half"
else if(cards.len > 1)
icon_state = "deck_[deckstyle]_low"
update_icon()
obj/item/toy/cards/deck/attack_self(mob/user as mob)
if(cooldown < world.time - 50)
@@ -515,12 +496,7 @@ obj/item/toy/cards/deck/attackby(obj/item/toy/cards/singlecard/C, mob/living/use
qdel(C)
else
to_chat(user, "<span class='notice'>You can't mix cards from other decks.</span>")
if(cards.len > 26)
icon_state = "deck_[deckstyle]_full"
else if(cards.len > 10)
icon_state = "deck_[deckstyle]_half"
else if(cards.len > 1)
icon_state = "deck_[deckstyle]_low"
update_icon()
obj/item/toy/cards/deck/attackby(obj/item/toy/cards/cardhand/C, mob/living/user, params)
@@ -535,12 +511,7 @@ obj/item/toy/cards/deck/attackby(obj/item/toy/cards/cardhand/C, mob/living/user,
qdel(C)
else
to_chat(user, "<span class='notice'>You can't mix cards from other decks.</span>")
if(cards.len > 26)
icon_state = "deck_[deckstyle]_full"
else if(cards.len > 10)
icon_state = "deck_[deckstyle]_half"
else if(cards.len > 1)
icon_state = "deck_[deckstyle]_low"
update_icon()
obj/item/toy/cards/deck/MouseDrop(atom/over_object)
var/mob/M = usr
@@ -566,7 +537,16 @@ obj/item/toy/cards/deck/MouseDrop(atom/over_object)
else
to_chat(usr, "<span class='notice'>You can't reach it from here.</span>")
obj/item/toy/cards/deck/update_icon()
switch(cards.len)
if(0)
icon_state = "deck_[deckstyle]_empty"
if(1 to 10)
icon_state = "deck_[deckstyle]_low"
if(11 to 26)
icon_state = "deck_[deckstyle]_half"
else
icon_state = "deck_[deckstyle]_full"
obj/item/toy/cards/cardhand
name = "hand of cards"
@@ -613,12 +593,7 @@ obj/item/toy/cards/cardhand/Topic(href, href_list)
cardUser.visible_message("<span class='notice'>[cardUser] draws a card from [cardUser.p_their()] hand.</span>", "<span class='notice'>You take the [C.cardname] from your hand.</span>")
interact(cardUser)
if(currenthand.len < 3)
icon_state = "[deckstyle]_hand2"
else if(src.currenthand.len < 4)
icon_state = "[deckstyle]_hand3"
else if(src.currenthand.len < 5)
icon_state = "[deckstyle]_hand4"
update_icon()
if(currenthand.len == 1)
var/obj/item/toy/cards/singlecard/N = new/obj/item/toy/cards/singlecard(src.loc)
N.parentdeck = src.parentdeck
@@ -639,12 +614,7 @@ obj/item/toy/cards/cardhand/attackby(obj/item/toy/cards/singlecard/C, mob/living
user.unEquip(C)
user.visible_message("<span class='notice'>[user] adds a card to [user.p_their()] hand.</span>", "<span class='notice'>You add the [C.cardname] to your hand.</span>")
interact(user)
if(currenthand.len > 4)
icon_state = "[deckstyle]_hand5"
else if(currenthand.len > 3)
icon_state = "[deckstyle]_hand4"
else if(currenthand.len > 2)
icon_state = "[deckstyle]_hand3"
update_icon()
qdel(C)
else
to_chat(user, "<span class='notice'>You can't mix cards from other decks.</span>")
@@ -697,7 +667,7 @@ obj/item/toy/cards/singlecard/verb/Flip()
icon_state = "sc_Ace of Spades_[deckstyle]"
name = "What Card"
pixel_x = 5
else if(flipped)
else
flipped = 0
icon_state = "singlecard_down_[deckstyle]"
name = "card"
@@ -728,16 +698,24 @@ obj/item/toy/cards/singlecard/attackby(obj/item/I, mob/living/user, params)
user.unEquip(src)
user.visible_message("<span class='notice'>[user] adds a card to [user.p_their()] hand.</span>", "<span class='notice'>You add the [cardname] to your hand.</span>")
H.interact(user)
if(H.currenthand.len > 4)
H.icon_state = "[deckstyle]_hand5"
else if(H.currenthand.len > 3)
H.icon_state = "[deckstyle]_hand4"
else if(H.currenthand.len > 2)
H.icon_state = "[deckstyle]_hand3"
H.update_icon()
qdel(src)
else
to_chat(user, "<span class='notice'>You can't mix cards from other decks.</span>")
obj/item/toy/cards/cardhand/update_icon()
switch(currenthand.len)
if(0 to 1)
return
if(2)
icon_state = "[deckstyle]_hand2"
if(3)
icon_state = "[deckstyle]_hand3"
if(4)
icon_state = "[deckstyle]_hand4"
else
icon_state = "[deckstyle]_hand5"
obj/item/toy/cards/singlecard/attack_self(mob/user)
if(usr.stat || !ishuman(usr) || !usr.canmove || usr.restrained())
@@ -813,10 +791,12 @@ obj/item/toy/cards/deck/syndicate/black
/obj/item/toy/therapy
name = "therapy doll"
desc = "A toy for therapeutic and recreational purposes."
icon = 'icons/obj/toy.dmi'
icon_state = "therapyred"
item_state = "egg4"
w_class = WEIGHT_CLASS_TINY
var/cooldown = 0
burn_state = FLAMMABLE
/obj/item/toy/therapy/New()
if(item_color)
@@ -836,7 +816,7 @@ obj/item/toy/cards/deck/syndicate/black
icon = 'icons/obj/toy.dmi'
icon_state = "therapyred"
/obj/random/prize/item_to_spawn()
/obj/random/therapy/item_to_spawn()
return pick(subtypesof(/obj/item/toy/therapy)) //exclude the base type.
/obj/item/toy/therapy/red
+1 -1
View File
@@ -86,7 +86,7 @@
icon_state = "id"
item_state = "card-id"
var/mining_points = 0 //For redeeming at mining equipment lockers
var/access = list()
var/list/access = list()
var/registered_name = "Unknown" // The name registered_name on the card
slot_flags = SLOT_ID
var/untrackable // Can not be tracked by AI's
@@ -159,6 +159,10 @@
..()
CreateDefaultTrigger(/obj/item/assembly/mousetrap)
/obj/item/grenade/chem_grenade/explosion/mine_armed/New()
..()
CreateDefaultTrigger(/obj/item/assembly/mousetrap/armed)
// Water + Potassium = Boom
@@ -198,6 +202,7 @@
// Basic EMP grenade
/obj/item/grenade/chem_grenade/emp
payload_name = "EMP"
@@ -86,6 +86,16 @@
new /obj/item/multitool(src)
new /obj/item/clothing/gloves/combat(src)
/obj/item/storage/toolbox/syndicate/trapped
name = "suspicious looking toolbox"
desc = "Danger. Very robust. Has a small red marker by the handle."
/obj/item/storage/toolbox/syndicate/trapped/New()
..()
new /obj/item/grenade/chem_grenade/explosion/mine_armed(src)
/obj/item/storage/toolbox/drone
name = "mechanical toolbox"
icon_state = "blue"
@@ -141,3 +141,6 @@ Frequency:
active_portals++
add_fingerprint(user)
return
/obj/item/hand_tele/portal_destroyed(obj/effect/portal/P)
active_portals--