mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
Merge branch 'master' of github.com:Baystation12/Baystation12
This commit is contained in:
@@ -1,6 +1,22 @@
|
||||
var/CMinutes = null
|
||||
var/savefile/Banlist
|
||||
|
||||
/proc/LoadBans()
|
||||
|
||||
Banlist = new("data/banlist.bdb")
|
||||
log_admin("Loading banlist.")
|
||||
|
||||
if (!length(Banlist.dir)) log_admin("Banlist is empty.")
|
||||
|
||||
if (!Banlist.dir.Find("base"))
|
||||
log_admin("Banlist missing base dir.")
|
||||
Banlist.dir.Add("base")
|
||||
|
||||
Banlist.cd = "/base"
|
||||
|
||||
ClearTempbans()
|
||||
return 1
|
||||
|
||||
|
||||
/proc/CheckBan(var/client/clientvar)
|
||||
|
||||
@@ -11,11 +27,11 @@ var/savefile/Banlist
|
||||
if (Banlist.dir.Find("[key][id]"))
|
||||
Banlist.cd = "[key][id]"
|
||||
if (Banlist["temp"])
|
||||
if (!GetExp(Banlist["minutes"]))
|
||||
if (!GetBanExp(Banlist["minutes"]))
|
||||
ClearTempbans()
|
||||
return 0
|
||||
else
|
||||
return "[Banlist["reason"]]\n(This ban will be automatically removed in [GetExp(Banlist["minutes"])].)"
|
||||
return "[Banlist["reason"]]\n(This ban will be automatically removed in [GetBanExp(Banlist["minutes"])].)"
|
||||
else
|
||||
Banlist.cd = "/base/[key][id]"
|
||||
return "[Banlist["reason"]]\n(This is a permanent ban)"
|
||||
@@ -23,40 +39,23 @@ var/savefile/Banlist
|
||||
Banlist.cd = "/base"
|
||||
for (var/A in Banlist.dir)
|
||||
Banlist.cd = "/base/[A]"
|
||||
if (id == Banlist["id"] || key == Banlist["key"])
|
||||
if ( key == Banlist["key"] || (id == Banlist["id"] && Banlist["skipIdCheck"] == 0) )
|
||||
if(Banlist["temp"])
|
||||
if (!GetExp(Banlist["minutes"]))
|
||||
if (!GetBanExp(Banlist["minutes"]))
|
||||
ClearTempbans()
|
||||
return 0
|
||||
else
|
||||
return "[Banlist["reason"]]\n(This ban will be automatically removed in [GetExp(Banlist["minutes"])].)"
|
||||
return "[Banlist["reason"]]\n(This ban will be automatically removed in [GetBanExp(Banlist["minutes"])].)"
|
||||
else
|
||||
return "[Banlist["reason"]]\n(This is a permanent ban)"
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
/proc/UpdateTime() //No idea why i made this a proc.
|
||||
/proc/UpdateTime()
|
||||
CMinutes = (world.realtime / 10) / 60
|
||||
return 1
|
||||
|
||||
/proc/LoadBans()
|
||||
|
||||
Banlist = new("data/banlist.bdb")
|
||||
log_admin("Loading Banlist")
|
||||
|
||||
if (!length(Banlist.dir)) log_admin("Banlist is empty.")
|
||||
|
||||
if (!Banlist.dir.Find("base"))
|
||||
log_admin("Banlist missing base dir.")
|
||||
Banlist.dir.Add("base")
|
||||
Banlist.cd = "/base"
|
||||
else if (Banlist.dir.Find("base"))
|
||||
Banlist.cd = "/base"
|
||||
|
||||
ClearTempbans()
|
||||
return 1
|
||||
|
||||
/proc/ClearTempbans()
|
||||
UpdateTime()
|
||||
|
||||
@@ -92,6 +91,7 @@ var/savefile/Banlist
|
||||
Banlist.cd = "/base/[ckey][computerid]"
|
||||
Banlist["key"] << ckey
|
||||
Banlist["id"] << computerid
|
||||
Banlist["skipIdCheck"] << 0
|
||||
Banlist["reason"] << reason
|
||||
Banlist["bannedby"] << bannedby
|
||||
Banlist["temp"] << temp
|
||||
@@ -106,7 +106,6 @@ var/savefile/Banlist
|
||||
|
||||
Banlist.cd = "/base/[foldername]"
|
||||
Banlist["key"] >> key
|
||||
Banlist["id"] >> id
|
||||
Banlist.cd = "/base"
|
||||
|
||||
if (!Banlist.dir.Remove(foldername)) return 0
|
||||
@@ -129,7 +128,7 @@ var/savefile/Banlist
|
||||
|
||||
return 1
|
||||
|
||||
/proc/GetExp(minutes as num)
|
||||
/proc/GetBanExp(minutes as num)
|
||||
UpdateTime()
|
||||
var/exp = minutes - CMinutes
|
||||
if (exp <= 0)
|
||||
@@ -147,20 +146,19 @@ var/savefile/Banlist
|
||||
/obj/admins/proc/unbanpanel()
|
||||
var/count = 0
|
||||
var/dat
|
||||
//var/dat = "<HR><B>Unban Player:</B> \blue(U) = Unban , (E) = Edit Ban\green (Total<HR><table border=1 rules=all frame=void cellspacing=0 cellpadding=3 >"
|
||||
Banlist.cd = "/base"
|
||||
for (var/A in Banlist.dir)
|
||||
count++
|
||||
Banlist.cd = "/base/[A]"
|
||||
dat += text("<tr><td><A href='?src=\ref[src];unbanf=[Banlist["key"]][Banlist["id"]]'>(U)</A><A href='?src=\ref[src];unbane=[Banlist["key"]][Banlist["id"]]'>(E)</A> Key: <B>[Banlist["key"]]</B></td><td> ([Banlist["temp"] ? "[GetExp(Banlist["minutes"]) ? GetExp(Banlist["minutes"]) : "Removal pending" ]" : "Permaban"])</td><td>(By: [Banlist["bannedby"]])</td><td>(Reason: [Banlist["reason"]])</td></tr>")
|
||||
dat += text("<tr><td><A href='?src=\ref[src];unban_del=[Banlist["key"]][Banlist["id"]]'>(U)</A><A href='?src=\ref[src];unban_edit=[Banlist["key"]][Banlist["id"]]'>(E)</A><A href='?src=\ref[src];unban_cid=[Banlist["key"]][Banlist["id"]]'>(K)</A> Key: <B>[Banlist["key"]]</B></td><td> ([Banlist["temp"] ? "[GetBanExp(Banlist["minutes"]) ? GetBanExp(Banlist["minutes"]) : "Removal pending" ]" : "Permaban"])</td><td>(By: [Banlist["bannedby"]])</td><td>(Reason: [Banlist["reason"]])</td></tr>")
|
||||
|
||||
dat += "</table>"
|
||||
dat = "<HR><B>Bans:</B> <FONT COLOR=blue>(U) = Unban , (E) = Edit Ban</FONT> - <FONT COLOR=green>([count] Bans)</FONT><HR><table border=1 rules=all frame=void cellspacing=0 cellpadding=3 >[dat]"
|
||||
dat = "<HR><B>Bans:</B> <FONT COLOR=blue>(U) = Unban , (E) = Edit Ban , (K) = Remove Computer ID</FONT> - <FONT COLOR=green>([count] Bans)</FONT><HR><table border=1 rules=all frame=void cellspacing=0 cellpadding=3 >[dat]"
|
||||
usr << browse(dat, "window=unbanp;size=875x400")
|
||||
|
||||
//////////////////////////////////// DEBUG ////////////////////////////////////
|
||||
|
||||
/proc/CreateBans()
|
||||
/*/proc/CreateBans()
|
||||
|
||||
UpdateTime()
|
||||
|
||||
@@ -192,5 +190,5 @@ var/savefile/Banlist
|
||||
/proc/ClearAllBans()
|
||||
Banlist.cd = "/base"
|
||||
for (var/A in Banlist.dir)
|
||||
RemoveBan(A)
|
||||
RemoveBan(A)*/
|
||||
|
||||
|
||||
@@ -115,8 +115,8 @@
|
||||
|
||||
|
||||
/////////////////////////////////////new ban stuff
|
||||
if(href_list["unbanf"])
|
||||
var/banfolder = href_list["unbanf"]
|
||||
if(href_list["unban_del"])
|
||||
var/banfolder = href_list["unban_del"]
|
||||
Banlist.cd = "/base/[banfolder]"
|
||||
var/key = Banlist["key"]
|
||||
if(alert(usr, "Are you sure you want to unban [key]?", "Confirmation", "Yes", "No") == "Yes")
|
||||
@@ -126,11 +126,18 @@
|
||||
alert(usr,"This ban has already been lifted / does not exist.","Error","Ok")
|
||||
unbanpanel()
|
||||
|
||||
if(href_list["unbane"])
|
||||
if(href_list["unban_cid"])
|
||||
var/banfolder = href_list["unban_cid"]
|
||||
Banlist.cd = "/base/[banfolder]"
|
||||
var/key = Banlist["key"]
|
||||
if(alert(usr, "Are you sure you want to remove the computer ID for [key]'s ban? Without the ID, a different account could get on the server from [key]'s computer.", "Confirmation", "Yes", "No") == "Yes")
|
||||
Banlist["skipIdCheck"] << 1
|
||||
|
||||
if(href_list["unban_edit"])
|
||||
UpdateTime()
|
||||
var/reason
|
||||
var/mins = 0
|
||||
var/banfolder = href_list["unbane"]
|
||||
var/banfolder = href_list["unban_edit"]
|
||||
Banlist.cd = "/base/[banfolder]"
|
||||
var/reason2 = Banlist["reason"]
|
||||
var/temp = Banlist["temp"]
|
||||
@@ -155,10 +162,10 @@
|
||||
if(!reason)
|
||||
return
|
||||
|
||||
log_admin("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [GetExp(mins)]")
|
||||
log_admin("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [GetBanExp(mins)]")
|
||||
|
||||
ban_unban_log_save("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [GetExp(mins)]")
|
||||
message_admins("\blue [key_name_admin(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [GetExp(mins)]", 1)
|
||||
ban_unban_log_save("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [GetBanExp(mins)]")
|
||||
message_admins("\blue [key_name_admin(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [GetBanExp(mins)]", 1)
|
||||
Banlist.cd = "/base/[banfolder]"
|
||||
Banlist["reason"] << reason
|
||||
Banlist["temp"] << temp
|
||||
|
||||
@@ -20,11 +20,6 @@ var/savefile/Banlistjob
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
///proc/UpdateTime() //No idea why i made this a proc.
|
||||
// CMinutes = (world.realtime / 10) / 60
|
||||
// return 1
|
||||
|
||||
/proc/LoadBansjob()
|
||||
|
||||
Banlistjob = new("data/job_fullnew.bdb")
|
||||
@@ -189,7 +184,7 @@ var/savefile/Banlistjob
|
||||
|
||||
return 1
|
||||
|
||||
/proc/GetExpjob(minutes as num)
|
||||
/proc/GetBanExpjob(minutes as num)
|
||||
UpdateTime()
|
||||
var/exp = minutes - CMinutes
|
||||
if (exp <= 0)
|
||||
@@ -212,7 +207,7 @@ var/savefile/Banlistjob
|
||||
for (var/A in Banlistjob.dir)
|
||||
count++
|
||||
Banlistjob.cd = "/base/[A]"
|
||||
dat += text("<tr><td><A href='?src=\ref[src];unjobbanf=[Banlistjob["key"]][Banlistjob["id"]][Banlistjob["rank"]]'>(U)</A> Key: <B>[Banlistjob["key"]] </B>Rank: <B>[Banlistjob["rank"]]</B></td><td> ([Banlistjob["temp"] ? "[GetExpjob(Banlistjob["minutes"]) ? GetExpjob(Banlistjob["minutes"]) : "Removal pending" ]" : "Permaban"])</td><td>(By: [Banlistjob["bannedby"]])</td><td>(Reason: [Banlistjob["reason"]])</td></tr>")
|
||||
dat += text("<tr><td><A href='?src=\ref[src];unjobbanf=[Banlistjob["key"]][Banlistjob["id"]][Banlistjob["rank"]]'>(U)</A> Key: <B>[Banlistjob["key"]] </B>Rank: <B>[Banlistjob["rank"]]</B></td><td> ([Banlistjob["temp"] ? "[GetBanExpjob(Banlistjob["minutes"]) ? GetBanExpjob(Banlistjob["minutes"]) : "Removal pending" ]" : "Permaban"])</td><td>(By: [Banlistjob["bannedby"]])</td><td>(Reason: [Banlistjob["reason"]])</td></tr>")
|
||||
|
||||
dat += "</table>"
|
||||
dat = "<HR><B>Bans:</B> <FONT COLOR=blue>(U) = Unban , </FONT> - <FONT COLOR=green>([count] Bans)</FONT><HR><table border=1 rules=all frame=void cellspacing=0 cellpadding=3 >[dat]"
|
||||
|
||||
@@ -491,6 +491,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
M.radiation = 0
|
||||
//M.health = 100
|
||||
M.nutrition = 400
|
||||
M.bodytemperature = initial(M.bodytemperature)
|
||||
M.heal_overall_damage(1000, 1000)
|
||||
//M.updatehealth()
|
||||
M.buckled = initial(M.buckled)
|
||||
@@ -725,35 +726,25 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
for(var/t in L)
|
||||
usr << "[t]"
|
||||
|
||||
/client/proc/cmd_admin_remove_plasma()
|
||||
/client/proc/cmd_admin_remove_plasma(area/A as area)
|
||||
set category = "Debug"
|
||||
set name = "Stabilize Atmos."
|
||||
set desc = "Stabilize atmos in selected area."
|
||||
if(!holder)
|
||||
src << "Only administrators may use this command."
|
||||
return
|
||||
// DEFERRED
|
||||
/*
|
||||
spawn(0)
|
||||
for(var/turf/T in view())
|
||||
T.poison = 0
|
||||
T.oldpoison = 0
|
||||
T.tmppoison = 0
|
||||
T.oxygen = 755985
|
||||
T.oldoxy = 755985
|
||||
T.tmpoxy = 755985
|
||||
T.co2 = 14.8176
|
||||
T.oldco2 = 14.8176
|
||||
T.tmpco2 = 14.8176
|
||||
T.n2 = 2.844e+006
|
||||
T.on2 = 2.844e+006
|
||||
T.tn2 = 2.844e+006
|
||||
T.tsl_gas = 0
|
||||
T.osl_gas = 0
|
||||
T.sl_gas = 0
|
||||
T.temp = 293.15
|
||||
T.otemp = 293.15
|
||||
T.ttemp = 293.15
|
||||
*/
|
||||
|
||||
spawn(1)
|
||||
for(var/turf/simulated/T in A)
|
||||
if(T.air)
|
||||
T.air.oxygen = T.oxygen
|
||||
T.air.carbon_dioxide = T.carbon_dioxide
|
||||
T.air.nitrogen = T.nitrogen
|
||||
T.air.toxins = T.toxins
|
||||
T.air.temperature = T.temperature
|
||||
|
||||
// make things update properly
|
||||
T.assume_air(new /datum/gas_mixture())
|
||||
|
||||
/client/proc/toggle_view_range()
|
||||
set category = "Special Verbs"
|
||||
|
||||
@@ -46,3 +46,8 @@
|
||||
name = "Pink Labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Has a pink stripe down from the shoulders."
|
||||
icon_state = "labcoat_pink_open"
|
||||
|
||||
/obj/item/clothing/suit/storage/labcoat/red
|
||||
name = "Red Labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Has a red stripe on the shoulders and rolled up sleeves."
|
||||
icon_state = "labcoat_sleeve_open"
|
||||
@@ -10,6 +10,8 @@
|
||||
alive = 1
|
||||
health = 10
|
||||
max_health = 10
|
||||
aggression = 100
|
||||
speed = 8
|
||||
list/access_list = list()//accesses go here
|
||||
//AI things
|
||||
task = "thinking"
|
||||
@@ -119,4 +121,4 @@
|
||||
|
||||
|
||||
|
||||
*/
|
||||
*/
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
src.target_lastloc = M.loc
|
||||
else
|
||||
var/turf/olddist = get_dist(src, src.target)
|
||||
walk_to(src, src.target,1,4)
|
||||
walk_to(src, src.target,1,speed)
|
||||
if ((get_dist(src, src.target)) >= (olddist))
|
||||
src.frustration++
|
||||
else
|
||||
@@ -106,6 +106,8 @@
|
||||
|
||||
|
||||
seek_target()
|
||||
if(!prob(aggression)) return // make them attack depending on aggression levels
|
||||
|
||||
src.anchored = 0
|
||||
var/T = null
|
||||
for(var/mob/living/C in view(src.seekrange,src))//TODO: mess with this
|
||||
@@ -198,4 +200,4 @@
|
||||
smoke.set_up(10, 0, src.loc)
|
||||
smoke.start()
|
||||
src.task = "thinking"
|
||||
*/
|
||||
*/
|
||||
|
||||
@@ -135,9 +135,10 @@
|
||||
name = "Spess Carp"
|
||||
desc = "A ferocious, fang-bearing creature that resembles a fish."
|
||||
icon_state = "spesscarp"
|
||||
health = 25
|
||||
max_health = 25
|
||||
health = 100
|
||||
max_health = 100
|
||||
aggressive = 1
|
||||
aggression = 20
|
||||
defensive = 1
|
||||
wanderer = 1
|
||||
atkcarbon = 1
|
||||
@@ -152,6 +153,7 @@
|
||||
attacktext = "bites"
|
||||
attack_sound = 'bite.ogg'
|
||||
attack_speed = 10
|
||||
speed = 8
|
||||
var/stunchance = 10 // chance to tackle things down
|
||||
|
||||
|
||||
@@ -185,8 +187,8 @@
|
||||
|
||||
/obj/effect/critter/spesscarp/elite
|
||||
desc = "Oh shit, you're really fucked now. It has an evil gleam in its eye."
|
||||
health = 50
|
||||
max_health = 50
|
||||
health = 200
|
||||
max_health = 200
|
||||
melee_damage_lower = 20
|
||||
melee_damage_upper = 35
|
||||
stunchance = 15
|
||||
|
||||
@@ -453,33 +453,6 @@
|
||||
..()
|
||||
reagents.add_reagent("nutriment", 8)
|
||||
bitesize = 1
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W,/obj/item/weapon/kitchen/utensil/fork))
|
||||
if (W.icon_state == "forkloaded")
|
||||
user << "\red You already have omelette on your fork."
|
||||
return
|
||||
//W.icon = 'kitchen.dmi'
|
||||
W.icon_state = "forkloaded"
|
||||
/*if (herp)
|
||||
world << "[user] takes a piece of omelette with his fork!"*/
|
||||
//Why this unecessary check? Oh I know, because I'm bad >:C
|
||||
// Yes, you are. You griefing my badmin toys. --rastaf0
|
||||
user.visible_message( \
|
||||
"[user] takes a piece of omelette with their fork!", \
|
||||
"\blue You take a piece of omelette with your fork!" \
|
||||
)
|
||||
reagents.remove_reagent("nutriment", 1)
|
||||
if (reagents.total_volume <= 0)
|
||||
del(src)
|
||||
/*
|
||||
* Unsused.
|
||||
/obj/item/weapon/reagent_containers/food/snacks/omeletteforkload
|
||||
name = "Omelette Du Fromage"
|
||||
desc = "That's all you can say!"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("nutriment", 1)
|
||||
*/
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/muffin
|
||||
name = "Muffin"
|
||||
|
||||
@@ -185,7 +185,7 @@ proc/move_mining_shuttle()
|
||||
item_state = "dpickaxe"
|
||||
digspeed = 10
|
||||
origin_tech = "materials=6;engineering=4"
|
||||
desc = "A pickaxe with a diamond pick head, this is just like minecraft."
|
||||
desc = "A pickaxe with a diamond pick head."
|
||||
|
||||
diamonddrill //When people ask about the badass leader of the mining tools, they are talking about ME!
|
||||
name = "Diamond Mining Drill"
|
||||
|
||||
Reference in New Issue
Block a user