mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-17 18:13:34 +01:00
(Plasma decal already fixed) - Merge branch 'master' of https://github.com/ParadiseSS13/Paradise
Conflicts: code/game/machinery/atmoalter/canister.dm
This commit is contained in:
@@ -638,6 +638,7 @@ var/list/admin_verbs_mod = list(
|
||||
set category = "Preferences"
|
||||
|
||||
prefs.toggles ^= CHAT_ATTACKLOGS
|
||||
prefs.save_preferences(src)
|
||||
if (prefs.toggles & CHAT_ATTACKLOGS)
|
||||
usr << "You now will get attack log messages"
|
||||
else
|
||||
|
||||
@@ -175,6 +175,14 @@
|
||||
)
|
||||
|
||||
//Lawyer
|
||||
/obj/item/clothing/suit/storage/lawyer/blackjacket
|
||||
name = "Black Suit Jacket"
|
||||
desc = "A snappy dress jacket."
|
||||
icon_state = "suitjacket_black_open"
|
||||
item_state = "suitjacket_black_open"
|
||||
blood_overlay_type = "coat"
|
||||
body_parts_covered = UPPER_TORSO|ARMS
|
||||
|
||||
/obj/item/clothing/suit/storage/lawyer/bluejacket
|
||||
name = "Blue Suit Jacket"
|
||||
desc = "A snappy dress jacket."
|
||||
|
||||
@@ -228,6 +228,27 @@
|
||||
item_state = "navy_suit"
|
||||
_color = "navy_suit"
|
||||
|
||||
/obj/item/clothing/under/suit_jacket/tan
|
||||
name = "tan suit"
|
||||
desc = "A tan suit with a yellow tie. Smart, but casual."
|
||||
icon_state = "tan_suit"
|
||||
item_state = "tan_suit"
|
||||
_color = "tan_suit"
|
||||
|
||||
/obj/item/clothing/under/suit_jacket/burgundy
|
||||
name = "burgundy suit"
|
||||
desc = "A burgundy suit and black tie. Somewhat formal."
|
||||
icon_state = "burgundy_suit"
|
||||
item_state = "burgundy_suit"
|
||||
_color = "burgundy_suit"
|
||||
|
||||
/obj/item/clothing/under/suit_jacket/charcoal
|
||||
name = "charcoal suit"
|
||||
desc = "A charcoal suit and red tie. Very professional."
|
||||
icon_state = "charcoal_suit"
|
||||
item_state = "charcoal_suit"
|
||||
_color = "charcoal_suit"
|
||||
|
||||
/obj/item/clothing/under/blackskirt
|
||||
name = "black skirt"
|
||||
desc = "A black skirt, very fancy!"
|
||||
@@ -587,6 +608,13 @@
|
||||
_color = "pennywise"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO
|
||||
|
||||
/obj/item/clothing/under/assistantformal
|
||||
name = "assistant's formal uniform"
|
||||
desc = "An assistant's formal-wear. Why an assistant needs formal-wear is still unknown."
|
||||
icon_state = "assistant_formal"
|
||||
item_state = "gy_suit"
|
||||
_color = "assistant_formal"
|
||||
|
||||
/obj/item/clothing/under/blacktango
|
||||
name = "black tango dress"
|
||||
desc = "Filled with Latin fire."
|
||||
|
||||
+39
-36
@@ -52,42 +52,42 @@ var/list/karma_spenders = list()
|
||||
set name = "Award Karma"
|
||||
set desc = "Let the gods know whether someone's been nice. Can only be used once per round."
|
||||
set category = "Special Verbs"
|
||||
|
||||
|
||||
if(!ticker || !player_list.len)
|
||||
usr << "\red You can't award karma until the game has started."
|
||||
return
|
||||
|
||||
|
||||
if(ticker.current_state == GAME_STATE_PREGAME)
|
||||
usr << "\red You can't award karma until the game has started."
|
||||
return
|
||||
return
|
||||
|
||||
var/list/karma_list = list("Cancel")
|
||||
for(var/mob/M in player_list) if(M.client && M.mind)
|
||||
for(var/mob/M in player_list) if(M.client && M.mind)
|
||||
var/special_role = M.mind.special_role
|
||||
if (special_role == "Wizard" || special_role == "Ninja" || special_role == "Syndicate" || special_role == "Syndicate Commando" || special_role == "Vox Raider" || special_role == "Alien") // Don't include special roles, because players use it to meta
|
||||
continue
|
||||
karma_list += M
|
||||
|
||||
|
||||
if(!karma_list.len || karma_list.len == 1)
|
||||
usr << "\red There's no-one to spend your karma on."
|
||||
return
|
||||
|
||||
|
||||
var/pickedmob = input("Who would you like to award Karma to?", "Award Karma", "Cancel") as null|mob in karma_list
|
||||
|
||||
|
||||
if(isnull(pickedmob))
|
||||
return
|
||||
|
||||
|
||||
if(!istype(pickedmob, /mob))
|
||||
usr << "\red That's not a mob."
|
||||
return
|
||||
|
||||
return
|
||||
|
||||
spend_karma(pickedmob)
|
||||
|
||||
/mob/verb/spend_karma(var/mob/M)
|
||||
|
||||
/mob/verb/spend_karma(var/mob/M)
|
||||
set name = "Award Karma to Player"
|
||||
set desc = "Let the gods know whether someone's been nice. Can only be used once per round."
|
||||
set category = "Special Verbs"
|
||||
|
||||
|
||||
if(!M)
|
||||
usr << "Please right click a mob to award karma directly, or use the 'Award Karma' verb to select a player from the player listing."
|
||||
return
|
||||
@@ -115,6 +115,9 @@ var/list/karma_spenders = list()
|
||||
if(!choice || choice == "Cancel")
|
||||
return
|
||||
if(choice == "Good" && !(src.client.karma_spent))
|
||||
if(src.client.karma_spent)
|
||||
usr << "\red You've already spent your karma for the round."
|
||||
return
|
||||
M.client.karma += 1
|
||||
usr << "[choice] karma spent on [M.name]."
|
||||
src.client.karma_spent = 1
|
||||
@@ -199,7 +202,7 @@ You've gained <b>[totalkarma]</b> total karma in your time here.<br>"}
|
||||
<a href='?src=\ref[src];karmashop=shop;KarmaBuy2=4'>Unlock Vox -- 45KP</a><br>
|
||||
<a href='?src=\ref[src];karmashop=shop;KarmaBuy2=5'>Unlock Slime People -- 45KP</a><br>
|
||||
"}
|
||||
|
||||
|
||||
if (2) // Karma Refunds
|
||||
var/list/refundable = list()
|
||||
var/list/purchased = checkpurchased()
|
||||
@@ -208,31 +211,31 @@ You've gained <b>[totalkarma]</b> total karma in your time here.<br>"}
|
||||
dat += "<a href='?src=\ref[src];karmashop=shop;KarmaRefund=Tajaran Ambassador;KarmaRefundType=job;KarmaRefundCost=30'>Refund Tajaran Ambassador -- 30KP</a><br>"
|
||||
if("Unathi Ambassador" in purchased)
|
||||
refundable += "Unathi Ambassador"
|
||||
dat += "<a href='?src=\ref[src];karmashop=shop;KarmaRefund=Unathi Ambassador;KarmaRefundType=job;KarmaRefundCost=30'>Refund Unathi Ambassador -- 30KP</a><br>"
|
||||
dat += "<a href='?src=\ref[src];karmashop=shop;KarmaRefund=Unathi Ambassador;KarmaRefundType=job;KarmaRefundCost=30'>Refund Unathi Ambassador -- 30KP</a><br>"
|
||||
if("Skrell Ambassador" in purchased)
|
||||
refundable += "Skrell Ambassador"
|
||||
dat += "<a href='?src=\ref[src];karmashop=shop;KarmaRefund=Skrell Ambassador;KarmaRefundType=job;KarmaRefundCost=30'>Refund Skrell Ambassador -- 30KP</a><br>"
|
||||
dat += "<a href='?src=\ref[src];karmashop=shop;KarmaRefund=Skrell Ambassador;KarmaRefundType=job;KarmaRefundCost=30'>Refund Skrell Ambassador -- 30KP</a><br>"
|
||||
if("Diona Ambassador" in purchased)
|
||||
refundable += "Diona Ambassador"
|
||||
dat += "<a href='?src=\ref[src];karmashop=shop;KarmaRefund=Diona Ambassador;KarmaRefundType=job;KarmaRefundCost=30'>Refund Diona Ambassador -- 30KP</a><br>"
|
||||
dat += "<a href='?src=\ref[src];karmashop=shop;KarmaRefund=Diona Ambassador;KarmaRefundType=job;KarmaRefundCost=30'>Refund Diona Ambassador -- 30KP</a><br>"
|
||||
if("Kidan Ambassador" in purchased)
|
||||
refundable += "Kidan Ambassador"
|
||||
dat += "<a href='?src=\ref[src];karmashop=shop;KarmaRefund=Kidan Ambassador;KarmaRefundType=job;KarmaRefundCost=30'>Refund Kidan Ambassador -- 30KP</a><br>"
|
||||
dat += "<a href='?src=\ref[src];karmashop=shop;KarmaRefund=Kidan Ambassador;KarmaRefundType=job;KarmaRefundCost=30'>Refund Kidan Ambassador -- 30KP</a><br>"
|
||||
if("Slime People Ambassador" in purchased)
|
||||
refundable += "Slime People Ambassador"
|
||||
dat += "<a href='?src=\ref[src];karmashop=shop;KarmaRefund=Slime People Ambassador;KarmaRefundType=job;KarmaRefundCost=30'>Refund Slime People Ambassador -- 30KP</a><br>"
|
||||
dat += "<a href='?src=\ref[src];karmashop=shop;KarmaRefund=Slime People Ambassador;KarmaRefundType=job;KarmaRefundCost=30'>Refund Slime People Ambassador -- 30KP</a><br>"
|
||||
if("Grey Ambassador" in purchased)
|
||||
refundable += "Grey Ambassador"
|
||||
dat += "<a href='?src=\ref[src];karmashop=shop;KarmaRefund=Grey Ambassador;KarmaRefundType=job;KarmaRefundCost=30'>Refund Grey Ambassador -- 30KP</a><br>"
|
||||
dat += "<a href='?src=\ref[src];karmashop=shop;KarmaRefund=Grey Ambassador;KarmaRefundType=job;KarmaRefundCost=30'>Refund Grey Ambassador -- 30KP</a><br>"
|
||||
if("Vox Ambassador" in purchased)
|
||||
refundable += "Vox Ambassador"
|
||||
dat += "<a href='?src=\ref[src];karmashop=shop;KarmaRefund=Vox Ambassador;KarmaRefundType=job;KarmaRefundCost=30'>Refund Vox Ambassador -- 30KP</a><br>"
|
||||
if("Customs Officer" in purchased)
|
||||
refundable += "Customs Officer"
|
||||
dat += "<a href='?src=\ref[src];karmashop=shop;KarmaRefund=Customs Officer;KarmaRefundType=job;KarmaRefundCost=30'>Refund Customs Officer -- 30KP</a><br>"
|
||||
dat += "<a href='?src=\ref[src];karmashop=shop;KarmaRefund=Customs Officer;KarmaRefundType=job;KarmaRefundCost=30'>Refund Customs Officer -- 30KP</a><br>"
|
||||
if("Nanotrasen Recruiter" in purchased)
|
||||
refundable += "Nanotrasen Recruiter"
|
||||
dat += "<a href='?src=\ref[src];karmashop=shop;KarmaRefund=Nanotrasen Recruiter;KarmaRefundType=job;KarmaRefundCost=10'>Refund Nanotrasen Recruiter -- 10KP</a><br>"
|
||||
dat += "<a href='?src=\ref[src];karmashop=shop;KarmaRefund=Nanotrasen Recruiter;KarmaRefundType=job;KarmaRefundCost=10'>Refund Nanotrasen Recruiter -- 10KP</a><br>"
|
||||
|
||||
if(!refundable.len)
|
||||
dat += "You do not have any refundable karma purchases.<br>"
|
||||
@@ -345,7 +348,7 @@ You've gained <b>[totalkarma]</b> total karma in your time here.<br>"}
|
||||
usr << "You have been charged [cost] karma."
|
||||
message_admins("[key_name(usr)] has been charged [cost] karma.")
|
||||
return
|
||||
|
||||
|
||||
/client/proc/karmarefund(var/type,var/name,var/cost)
|
||||
if(name == "Tajaran Ambassador")
|
||||
cost = 30
|
||||
@@ -368,12 +371,12 @@ You've gained <b>[totalkarma]</b> total karma in your time here.<br>"}
|
||||
else if(name == "Nanotrasen Recruiter")
|
||||
cost = 10
|
||||
else
|
||||
usr << "\red That job is not refundable."
|
||||
usr << "\red That job is not refundable."
|
||||
return
|
||||
|
||||
|
||||
var/DBQuery/query = dbcon.NewQuery("SELECT * FROM whitelist WHERE ckey='[usr.key]'")
|
||||
query.Execute()
|
||||
|
||||
|
||||
var/dbjob
|
||||
var/dbspecies
|
||||
var/dbckey
|
||||
@@ -381,7 +384,7 @@ You've gained <b>[totalkarma]</b> total karma in your time here.<br>"}
|
||||
dbckey = query.item[2]
|
||||
dbjob = query.item[3]
|
||||
dbspecies = query.item[4]
|
||||
|
||||
|
||||
if(dbckey)
|
||||
var/list/typelist = list()
|
||||
if(type == "job")
|
||||
@@ -389,8 +392,8 @@ You've gained <b>[totalkarma]</b> total karma in your time here.<br>"}
|
||||
else if(type == "species")
|
||||
typelist = text2list(dbspecies,",")
|
||||
else
|
||||
usr << "\red Type [type] is not a valid column."
|
||||
|
||||
usr << "\red Type [type] is not a valid column."
|
||||
|
||||
if(name in typelist)
|
||||
typelist -= name
|
||||
var/newtypelist = list2text(typelist,",")
|
||||
@@ -406,14 +409,14 @@ You've gained <b>[totalkarma]</b> total karma in your time here.<br>"}
|
||||
karmacharge(text2num(cost),1)
|
||||
else
|
||||
usr << "\red You have not bought [name]."
|
||||
|
||||
|
||||
else
|
||||
usr << "\red Your ckey ([dbckey]) was not found."
|
||||
|
||||
usr << "\red Your ckey ([dbckey]) was not found."
|
||||
|
||||
/client/proc/checkpurchased(var/name = null) // If the first parameter is null, return a full list of purchases
|
||||
var/DBQuery/query = dbcon.NewQuery("SELECT * FROM whitelist WHERE ckey='[usr.key]'")
|
||||
query.Execute()
|
||||
|
||||
query.Execute()
|
||||
|
||||
var/dbjob
|
||||
var/dbspecies
|
||||
var/dbckey
|
||||
@@ -421,7 +424,7 @@ You've gained <b>[totalkarma]</b> total karma in your time here.<br>"}
|
||||
dbckey = query.item[2]
|
||||
dbjob = query.item[3]
|
||||
dbspecies = query.item[4]
|
||||
|
||||
|
||||
if(dbckey)
|
||||
var/list/joblist = text2list(dbjob,",")
|
||||
var/list/specieslist = text2list(dbspecies,",")
|
||||
@@ -434,4 +437,4 @@ You've gained <b>[totalkarma]</b> total karma in your time here.<br>"}
|
||||
else
|
||||
return combinedlist
|
||||
else
|
||||
return 0
|
||||
return 0
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
/mob/living/simple_animal/butterfly
|
||||
name = "butterfly"
|
||||
desc = "A colorful butterfly, how'd it get up here?"
|
||||
icon_state = "butterfly"
|
||||
icon_living = "butterfly"
|
||||
icon_dead = "butterfly_dead"
|
||||
turns_per_move = 1
|
||||
emote_see = list("flutters")
|
||||
response_help = "shoos"
|
||||
response_disarm = "brushes aside"
|
||||
response_harm = "aquashes"
|
||||
speak_chance = 0
|
||||
maxHealth = 2
|
||||
health = 2
|
||||
harm_intent_damage = 1
|
||||
friendly = "nudges"
|
||||
pass_flags = PASSTABLE
|
||||
|
||||
/mob/living/simple_animal/butterfly/New()
|
||||
..()
|
||||
color = rgb(rand(0, 255), rand(0, 255), rand(0, 255))
|
||||
@@ -0,0 +1,42 @@
|
||||
//Corgi //best comment 2014
|
||||
/mob/living/simple_animal/pug
|
||||
name = "\improper pug"
|
||||
real_name = "pug"
|
||||
desc = "It's a pug."
|
||||
icon_state = "pug"
|
||||
icon_living = "pug"
|
||||
icon_dead = "pug_dead"
|
||||
speak = list("YAP", "Woof!", "Bark!", "AUUUUUU")
|
||||
speak_emote = list("barks", "woofs")
|
||||
emote_hear = list("barks!", "woofs!", "yaps.","pants.")
|
||||
emote_see = list("shakes its head.", "chases its tail.","shivers.")
|
||||
speak_chance = 1
|
||||
turns_per_move = 10
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/pug
|
||||
meat_amount = 3
|
||||
response_help = "pets"
|
||||
response_disarm = "bops"
|
||||
response_harm = "kicks"
|
||||
see_in_dark = 5
|
||||
|
||||
/mob/living/simple_animal/pug/Life()
|
||||
..()
|
||||
|
||||
if(!stat && !resting && !buckled)
|
||||
if(prob(1))
|
||||
emote("me", 1, pick("chases its tail."))
|
||||
spawn(0)
|
||||
for(var/i in list(1,2,4,8,4,2,1,2,4,8,4,2,1,2,4,8,4,2))
|
||||
dir = i
|
||||
sleep(1)
|
||||
|
||||
/mob/living/simple_animal/pug/attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri
|
||||
if(istype(O, /obj/item/weapon/newspaper))
|
||||
if(!stat)
|
||||
user.visible_message("<span class='notice'>[user] baps [name] on the nose with the rolled up [O]</span>")
|
||||
spawn(0)
|
||||
for(var/i in list(1,2,4,8,4,2,1,2))
|
||||
dir = i
|
||||
sleep(1)
|
||||
else
|
||||
..()
|
||||
@@ -35,3 +35,7 @@
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat/corgi
|
||||
name = "Corgi meat"
|
||||
desc = "Tastes like... well you know..."
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat/pug
|
||||
name = "Pug meat"
|
||||
desc = "Tastes like... well you know..."
|
||||
Reference in New Issue
Block a user