Merge pull request #3414 from Zuhayr/dev

Various fixes, fixes dev branch crash at runtime issue.
This commit is contained in:
Zuhayr
2013-08-02 16:38:59 -07:00
14 changed files with 127 additions and 94 deletions
@@ -70,7 +70,7 @@
D.name = "small parcel - 'EFTPOS access code'"
/obj/item/device/eftpos/proc/reconnect_database()
for(var/obj/machinery/account_database/DB in machines)
for(var/obj/machinery/account_database/DB in world) //Hotfix until someone finds out why it isn't in 'machines'
if(DB.z == src.z)
linked_db = DB
break
+1 -1
View File
@@ -70,7 +70,7 @@ log transactions
break
/obj/machinery/atm/proc/reconnect_database()
for(var/obj/machinery/account_database/DB in machines)
for(var/obj/machinery/account_database/DB in world) //Hotfix until someone finds out why it isn't in 'machines'
if( DB.z == src.z && !(DB.stat & NOPOWER) && DB.activated )
linked_db = DB
break
+10 -2
View File
@@ -51,7 +51,7 @@
//This list tracks characters spawned in the world and cannot be modified in-game. Currently referenced by respawn_character().
var/locked[] = list()
proc/get_manifest(monochrome)
proc/get_manifest(monochrome, OOC)
var/list/heads = new()
var/list/sec = new()
var/list/eng = new()
@@ -80,7 +80,15 @@
var/name = t.fields["name"]
var/rank = t.fields["rank"]
var/real_rank = t.fields["real_rank"]
isactive[name] = t.fields["p_stat"]
if(OOC)
var/active = 0
for(var/mob/M in player_list)
if(M.real_name == name && M.client && M.client.inactivity <= 10 * 60 * 10)
active = 1
break
isactive[name] = active ? "Active" : "Inactive"
else
isactive[name] = t.fields["p_stat"]
//world << "[name]: [rank]"
+1 -1
View File
@@ -389,7 +389,7 @@ var/list/sacrificed = list()
var/chose_name = 0
for(var/obj/item/weapon/paper/P in this_rune.loc)
if(P.info)
D.real_name = copytext(P.info, 1, MAX_NAME_LEN)
D.real_name = copytext(P.info, findtext(P.info,">")+1, findtext(P.info,"<",2) )
chose_name = 1
break
if(!chose_name)
+31 -30
View File
@@ -789,40 +789,44 @@ datum/objective/heist/kidnap
return 0
datum/objective/heist/loot
choose_target()
if(pick("hardware","weapons") == "hardware")
target = pick("a complete particle accelerator","a gravitational generator","four emitters","a nuclear bomb")
else
target = pick("six guns","four energy guns","two laser guns","an ion gun")
explanation_text = "We are lacking in hardware. Steal [target]."
switch(target)
if("a complete particle accelerator")
var/loot = "an object"
switch(rand(1,8))
if(1)
target = /obj/structure/particle_accelerator
target_amount = 6
if("a gravitational generator")
loot = "a complete particle accelerator"
if(2)
target = /obj/machinery/the_singularitygen
target_amount = 1
if("four emitters")
loot = "a gravitational generator"
if(3)
target = /obj/machinery/power/emitter
target_amount = 4
if("a nuclear bomb")
loot = "four emitters"
if(4)
target = /obj/machinery/nuclearbomb
target_amount = 1
if("six guns")
loot = "a nuclear bomb"
if(5)
target = /obj/item/weapon/gun
target_amount = 6
if("four energy guns")
loot = "six guns"
if(6)
target = /obj/item/weapon/gun/energy
target_amount = 4
if("two laser guns")
loot = "four energy guns"
if(7)
target = /obj/item/weapon/gun/energy/laser
target_amount = 2
if("an ion gun")
loot = "two laser guns"
if(8)
target = /obj/item/weapon/gun/energy/ionrifle
target_amount = 1
loot = "an ion gun"
explanation_text = "We are lacking in hardware. Steal [loot]."
check_completion()
@@ -844,36 +848,33 @@ datum/objective/heist/loot
datum/objective/heist/salvage
choose_target()
var/list/possible_items = list("300 metal sheets","200 glass sheets","100 plasteel sheets","100 units of solid plasma","50 silver bars","20 gold bars","20 uranium bars","20 diamonds")
target = pick(possible_items)
explanation_text = "Ransack the station and escape with [target]."
switch(target)
if("300 metal sheets")
switch(rand(1,8))
if(1)
target = "metal"
target_amount = 300
if("200 glass sheets")
if(2)
target = "glass"
target_amount = 200
if("100 plasteel sheets")
if(3)
target = "plasteel"
target_amount = 100
if("100 units of solid plasma")
if(4)
target = "plasma"
target_amount = 100
if("50 silver bars")
if(5)
target = "silver"
target_amount = 50
if("20 gold bars")
if(6)
target = "gold"
target_amount = 20
if("20 uranium bars")
if(7)
target = "uranium"
target_amount = 20
if("20 diamonds")
if(8)
target = "diamond"
target_amount = 20
explanation_text = "Ransack the station and escape with [target_amount] [target]."
check_completion()
+1
View File
@@ -18,6 +18,7 @@
for(dir in list(NORTH,EAST,SOUTH,WEST))
computer = locate(/obj/machinery/computer/operating, get_step(src, dir))
if (computer)
computer.table = src
break
// spawn(100) //Wont the MC just call this process() before and at the 10 second mark anyway?
// process()
+2 -1
View File
@@ -13,7 +13,8 @@
..()
for(dir in list(NORTH,EAST,SOUTH,WEST))
table = locate(/obj/machinery/optable, get_step(src, dir))
if (!isnull(table))
if (table)
table.computer = src
break
/obj/machinery/computer/operating/attack_ai(mob/user)
+1 -1
View File
@@ -435,7 +435,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.set_machine(src)
if(href_list["set_channel_name"])
src.channel_name = strip_html_simple(input(usr, "Provide a Feed Channel Name", "Network Channel Handler", ""))
src.channel_name = sanitizeSQL(strip_html_simple(input(usr, "Provide a Feed Channel Name", "Network Channel Handler", "")))
while (findtext(src.channel_name," ") == 1)
src.channel_name = copytext(src.channel_name,2,lentext(src.channel_name)+1)
src.updateUsrDialog()
+1
View File
@@ -484,6 +484,7 @@
return "[..()] [mode==1?"([locked||"Nothing"])":null] \[<a href='?src=\ref[src];mode=1'>S</a>|<a href='?src=\ref[src];mode=2'>P</a>\]"
Topic(href, href_list)
..()
if(href_list["mode"])
mode = text2num(href_list["mode"])
send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info())
+31 -30
View File
@@ -12,7 +12,7 @@
icon_state ="bookEngineering"
author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
title = "Station Repairs and Construction"
dat = {"
/*dat = {"
<html><head>
</head>
@@ -23,7 +23,7 @@
</html>
"}
"}*/
/obj/item/weapon/book/manual/engineering_particle_accelerator
name = "Particle Accelerator User's Guide"
@@ -32,7 +32,7 @@
title = "Particle Accelerator User's Guide"
//big pile of shit below.
dat = {"<html>
/*dat = {"<html>
<head>
<style>
h1 {font-size: 18px; margin: 15px 0px 5px;}
@@ -65,7 +65,7 @@
</ol>
</body>
</html>"}
</html>"}*/
/obj/item/weapon/book/manual/engineering_hacking
@@ -75,7 +75,7 @@
title = "Hacking"
//big pile of shit below.
dat = {"
/*dat = {"
<html><head>
</head>
@@ -86,7 +86,7 @@
</html>
"}
"}*/
/obj/item/weapon/book/manual/engineering_singularity_safety
name = "Singularity Safety in Special Circumstances"
@@ -95,7 +95,7 @@
title = "Singularity Safety in Special Circumstances"
//big pile of shit below.
dat = {"<html>
/*dat = {"<html>
<head>
<style>
h1 {font-size: 18px; margin: 15px 0px 5px;}
@@ -134,14 +134,14 @@
Step one: <b>GET THE FUCK OUT OF THERE!!! FORGET THE WOMEN AND CHILDREN, SAVE YOURSELF!!!</b><br>
</body>
</html>
"}
"}*/
/obj/item/weapon/book/manual/hydroponics_pod_people
name = "The Human Harvest - From seed to market"
icon_state ="bookHydroponicsPodPeople"
author = "Farmer John"
title = "The Human Harvest - From seed to market"
dat = {"<html>
/*dat = {"<html>
<head>
<style>
h1 {font-size: 18px; margin: 15px 0px 5px;}
@@ -169,7 +169,7 @@
</body>
</html>
"}
"}*/
/obj/item/weapon/book/manual/medical_cloning
name = "Cloning techniques of the 26th century"
@@ -178,7 +178,7 @@
title = "Cloning techniques of the 26th century"
//big pile of shit below.
dat = {"<html>
/*dat = {"<html>
<head>
<style>
h1 {font-size: 18px; margin: 15px 0px 5px;}
@@ -246,7 +246,7 @@
</body>
</html>
"}
"}*/
/obj/item/weapon/book/manual/ripley_build_and_repair
@@ -256,7 +256,7 @@
title = "APLU \"Ripley\" Construction and Operation Manual"
//big pile of shit below.
dat = {"<html>
/*dat = {"<html>
<head>
<style>
h1 {font-size: 18px; margin: 15px 0px 5px;}
@@ -322,7 +322,7 @@
<h2>Operation</h2>
Coming soon...
"}
"}*/
/obj/item/weapon/book/manual/research_and_development
@@ -330,7 +330,8 @@
icon_state = "rdbook"
author = "Dr. L. Ight"
title = "Research and Development 101"
dat = {"<html>
/*dat = {"
<html>
<head>
<style>
h1 {font-size: 18px; margin: 15px 0px 5px;}
@@ -372,7 +373,7 @@
Many machines produces from circuit boards and inserted into a machine frame require a variety of parts to construct. These are parts like capacitors, batteries, matter bins, and so forth. As your knowledge of science improves, more advanced versions are unlocked. If you use these parts when constructing something, its attributes may be improved. For example, if you use an advanced matter bin when constructing an autolathe (rather then a regular one), it'll hold more materials. Experiment around with stock parts of various qualities to see how they affect the end results! Be warned, however: Tier 3 and higher stock parts don't have 100% reliability and their low reliability may affect the reliability of the end machine.
</body>
</html>
"}
"}*/
/obj/item/weapon/book/manual/robotics_cyborgs
@@ -380,7 +381,7 @@
icon_state = "borgbook"
author = "XISC"
title = "Cyborgs for Dummies"
dat = {"<html>
/*dat = {"<html>
<head>
<style>
h1 {font-size: 21px; margin: 15px 0px 5px;}
@@ -575,7 +576,7 @@
</body>
</html>
"}
"}*/
/obj/item/weapon/book/manual/security_space_law
name = "Space Law"
@@ -583,7 +584,7 @@
icon_state = "bookSpaceLaw"
author = "Nanotrasen"
title = "Space Law"
dat = {"
/*dat = {"
<html><head>
</head>
@@ -593,14 +594,14 @@
</html>
"}
"}*/
/obj/item/weapon/book/manual/engineering_guide
name = "Engineering Textbook"
icon_state ="bookEngineering2"
author = "Engineering Encyclopedia"
title = "Engineering Textbook"
dat = {"
/*dat = {"
<html><head>
</head>
@@ -610,7 +611,7 @@
</html>
"}
"}*/
/obj/item/weapon/book/manual/chef_recipes
@@ -618,7 +619,7 @@
icon_state = "cooked_book"
author = "Lord Frenrir Cageth"
title = "Chef Recipes"
dat = {"<html>
/*dat = {"<html>
<head>
<style>
h1 {font-size: 18px; margin: 15px 0px 5px;}
@@ -663,14 +664,14 @@
</body>
</html>
"}
"}*/
/obj/item/weapon/book/manual/barman_recipes
name = "Barman Recipes"
icon_state = "barbook"
author = "Sir John Rose"
title = "Barman Recipes"
dat = {"<html>
/*dat = {"<html>
<head>
<style>
h1 {font-size: 18px; margin: 15px 0px 5px;}
@@ -715,7 +716,7 @@
</body>
</html>
"}
"}*/
/obj/item/weapon/book/manual/detective
@@ -723,7 +724,7 @@
icon_state ="bookDetective"
author = "Nanotrasen"
title = "The Film Noir: Proper Procedures for Investigations"
dat = {"<html>
/*dat = {"<html>
<head>
<style>
h1 {font-size: 18px; margin: 15px 0px 5px;}
@@ -757,14 +758,14 @@
It really is that easy! Good luck!
</body>
</html>"}
</html>"}*/
/obj/item/weapon/book/manual/nuclear
name = "Fission Mailed: Nuclear Sabotage 101"
icon_state ="bookNuclear"
author = "Syndicate"
title = "Fission Mailed: Nuclear Sabotage 101"
dat = {"<html>
/*dat = {"<html>
Nuclear Explosives 101:<br>
Hello and thank you for choosing the Syndicate for your nuclear information needs.<br>
Today's crash course will deal with the operation of a Fusion Class Nanotrasen made Nuclear Device.<br>
@@ -792,4 +793,4 @@
<b>Disk, Code, Safety, Timer, Disk, RUN!</b><br>
Intelligence Analysts believe that normal Nanotrasen procedure is for the Captain to secure the nuclear authorisation disk.<br>
Good luck!
</html>"}
</html>"}*/
+23 -23
View File
@@ -12,8 +12,8 @@
icon_state = "pine_1"
/obj/structure/flora/tree/pine/New()
icon_state = "pine_[rand(1, 3)]"
..()
icon_state = "pine_[rand(1, 3)]"
/obj/structure/flora/tree/pine/xmas
name = "xmas tree"
@@ -29,8 +29,8 @@
icon_state = "tree_1"
/obj/structure/flora/tree/dead/New()
icon_state = "tree_[rand(1, 6)]"
..()
icon_state = "tree_[rand(1, 6)]"
//grass
@@ -43,23 +43,23 @@
icon_state = "snowgrass1bb"
/obj/structure/flora/grass/brown/New()
icon_state = "snowgrass[rand(1, 3)]bb"
..()
icon_state = "snowgrass[rand(1, 3)]bb"
/obj/structure/flora/grass/green
icon_state = "snowgrass1gb"
/obj/structure/flora/grass/green/New()
icon_state = "snowgrass[rand(1, 3)]gb"
..()
icon_state = "snowgrass[rand(1, 3)]gb"
/obj/structure/flora/grass/both
icon_state = "snowgrassall1"
/obj/structure/flora/grass/both/New()
icon_state = "snowgrassall[rand(1, 3)]"
..()
icon_state = "snowgrassall[rand(1, 3)]"
//bushes
@@ -70,8 +70,8 @@
anchored = 1
/obj/structure/flora/bush/New()
icon_state = "snowbush[rand(1, 6)]"
..()
icon_state = "snowbush[rand(1, 6)]"
//newbushes
@@ -82,110 +82,110 @@
anchored = 1
/obj/structure/flora/ausbushes/New()
icon_state = "firstbush_[rand(1, 4)]"
..()
icon_state = "firstbush_[rand(1, 4)]"
/obj/structure/flora/ausbushes/reedbush
icon_state = "reedbush_1"
/obj/structure/flora/ausbushes/reedbush/New()
icon_state = "reedbush_[rand(1, 4)]"
..()
icon_state = "reedbush_[rand(1, 4)]"
/obj/structure/flora/ausbushes/leafybush
icon_state = "leafybush_1"
/obj/structure/flora/ausbushes/leafybush/New()
icon_state = "leafybush_[rand(1, 3)]"
..()
icon_state = "leafybush_[rand(1, 3)]"
/obj/structure/flora/ausbushes/palebush
icon_state = "palebush_1"
/obj/structure/flora/ausbushes/palebush/New()
icon_state = "palebush_[rand(1, 4)]"
..()
icon_state = "palebush_[rand(1, 4)]"
/obj/structure/flora/ausbushes/stalkybush
icon_state = "stalkybush_1"
/obj/structure/flora/ausbushes/stalkybush/New()
icon_state = "stalkybush_[rand(1, 3)]"
..()
icon_state = "stalkybush_[rand(1, 3)]"
/obj/structure/flora/ausbushes/grassybush
icon_state = "grassybush_1"
/obj/structure/flora/ausbushes/grassybush/New()
icon_state = "grassybush_[rand(1, 4)]"
..()
icon_state = "grassybush_[rand(1, 4)]"
/obj/structure/flora/ausbushes/fernybush
icon_state = "fernybush_1"
/obj/structure/flora/ausbushes/fernybush/New()
icon_state = "fernybush_[rand(1, 3)]"
..()
icon_state = "fernybush_[rand(1, 3)]"
/obj/structure/flora/ausbushes/sunnybush
icon_state = "sunnybush_1"
/obj/structure/flora/ausbushes/sunnybush/New()
icon_state = "sunnybush_[rand(1, 3)]"
..()
icon_state = "sunnybush_[rand(1, 3)]"
/obj/structure/flora/ausbushes/genericbush
icon_state = "genericbush_1"
/obj/structure/flora/ausbushes/genericbush/New()
icon_state = "genericbush_[rand(1, 4)]"
..()
icon_state = "genericbush_[rand(1, 4)]"
/obj/structure/flora/ausbushes/pointybush
icon_state = "pointybush_1"
/obj/structure/flora/ausbushes/pointybush/New()
icon_state = "pointybush_[rand(1, 4)]"
..()
icon_state = "pointybush_[rand(1, 4)]"
/obj/structure/flora/ausbushes/lavendergrass
icon_state = "lavendergrass_1"
/obj/structure/flora/ausbushes/lavendergrass/New()
icon_state = "lavendergrass_[rand(1, 4)]"
..()
icon_state = "lavendergrass_[rand(1, 4)]"
/obj/structure/flora/ausbushes/ywflowers
icon_state = "ywflowers_1"
/obj/structure/flora/ausbushes/ywflowers/New()
icon_state = "ywflowers_[rand(1, 3)]"
..()
icon_state = "ywflowers_[rand(1, 3)]"
/obj/structure/flora/ausbushes/brflowers
icon_state = "brflowers_1"
/obj/structure/flora/ausbushes/brflowers/New()
icon_state = "brflowers_[rand(1, 3)]"
..()
icon_state = "brflowers_[rand(1, 3)]"
/obj/structure/flora/ausbushes/ppflowers
icon_state = "ppflowers_1"
/obj/structure/flora/ausbushes/ppflowers/New()
icon_state = "ppflowers_[rand(1, 4)]"
..()
icon_state = "ppflowers_[rand(1, 4)]"
/obj/structure/flora/ausbushes/sparsegrass
icon_state = "sparsegrass_1"
/obj/structure/flora/ausbushes/sparsegrass/New()
icon_state = "sparsegrass_[rand(1, 3)]"
..()
icon_state = "sparsegrass_[rand(1, 3)]"
/obj/structure/flora/ausbushes/fullgrass
icon_state = "fullgrass_1"
/obj/structure/flora/ausbushes/fullgrass/New()
icon_state = "fullgrass_[rand(1, 3)]"
..()
..()
icon_state = "fullgrass_[rand(1, 3)]"
@@ -23,6 +23,8 @@
volume = 5
can_be_placed_into = null
/obj/item/weapon/reagent_containers/glass/rag/attack_self(mob/user as mob)
return
/obj/item/weapon/reagent_containers/glass/rag/attack(atom/target as obj|turf|area, mob/user as mob , flag)
if(ismob(target) && target.reagents && reagents.total_volume)
@@ -51,6 +51,10 @@ emp_act
return -1 // complete projectile permutation
if(check_shields(P.damage, "the [P.name]"))
P.on_hit(src, 2)
return 2
//BEGIN BOOK'S TASER NERF.
if(istype(P, /obj/item/projectile/energy/electrode))
var/datum/organ/external/select_area = get_organ(def_zone) // We're checking the outside, buddy!
@@ -66,11 +70,25 @@ emp_act
apply_effect(P.agony,AGONY,0)
flash_pain()
src <<"\red You have been shot!"
del P
var/obj/item/weapon/cloaking_device/C = locate((/obj/item/weapon/cloaking_device) in src)
if(C && C.active)
C.attack_self(src)//Should shut it off
update_icons()
src << "\blue Your [C.name] was disrupted!"
Stun(2)
if(istype(equipped(),/obj/item/device/assembly/signaler))
var/obj/item/device/assembly/signaler/signaler = equipped()
if(signaler.deadman && prob(80))
src.visible_message("\red [src] triggers their deadman's switch!")
signaler.signal()
return
//END TASER NERF
if(check_shields(P.damage, "the [P.name]"))
P.on_hit(src, 2)
return 2
return (..(P , def_zone))
+1 -1
View File
@@ -407,7 +407,7 @@
proc/ViewManifest()
var/dat = "<html><body>"
dat += "<h4>Crew Manifest</h4>"
dat += data_core.get_manifest()
dat += data_core.get_manifest(OOC = 1)
src << browse(dat, "window=manifest;size=370x420;can_close=1")