Merge pull request #520 from Markolie/master

Adds podbay doors that can be opened from within pods, general map fixes
This commit is contained in:
Fox-McCloud
2014-11-23 18:04:42 -05:00
14 changed files with 484 additions and 259 deletions
+4
View File
@@ -754,6 +754,10 @@ var/list/ghostteleportlocs = list()
/area/atmos/control
name = "Atmospherics Control Room"
icon_state = "atmos"
/area/atmos/distribution
name = "Atmospherics Distribution Loop"
icon_state = "atmos"
//Maintenance
+161 -5
View File
@@ -1,6 +1,6 @@
/obj/machinery/door/poddoor
name = "Podlock"
desc = "Why it no open!!!"
desc = "That looks like it doesn't open easily."
icon = 'icons/obj/doors/rapid_pdoor.dmi'
icon_state = "pdoor1"
var/id = 1.0
@@ -14,7 +14,10 @@
/obj/machinery/door/poddoor/four_tile_ver/
name = "Large Pod Door"
icon = 'icons/obj/doors/1x4blast_vert.dmi'
/obj/machinery/door/poddoor/three_tile_ver/
name = "Large Pod Door"
icon = 'icons/obj/doors/1x3blast_vert.dmi'
/obj/machinery/door/poddoor/Bumped(atom/AM)
if(!density)
@@ -122,6 +125,58 @@
src.operating = 0
return
*/
/obj/machinery/door/poddoor/three_tile_hor/open()
if (src.operating == 1) //doors can still open when emag-disabled
return
if (!ticker)
return 0
if(!src.operating) //in case of emag
src.operating = 1
flick("pdoorc0", src)
src.icon_state = "pdoor0"
sleep(10)
src.density = 0
src.SetOpacity(0)
f1.density = 0
f1.SetOpacity(0)
f2.density = 0
f2.SetOpacity(0)
f3.density = 0
f3.SetOpacity(0)
update_nearby_tiles()
if(operating == 1) //emag again
src.operating = 0
if(autoclose)
spawn(150)
autoclose()
return 1
/obj/machinery/door/poddoor/three_tile_hor/close()
if (src.operating)
return
src.operating = 1
flick("pdoorc1", src)
src.icon_state = "pdoor1"
src.density = 1
f1.density = 1
f1.SetOpacity(1)
f2.density = 1
f2.SetOpacity(1)
f3.density = 1
f3.SetOpacity(1)
if (src.visible)
src.SetOpacity(1)
update_nearby_tiles()
sleep(10)
src.operating = 0
return
/obj/machinery/door/poddoor/four_tile_hor/open()
if (src.operating == 1) //doors can still open when emag-disabled
return
@@ -226,6 +281,59 @@
src.operating = 0
return
*/
/obj/machinery/door/poddoor/three_tile_ver/open()
if (src.operating == 1) //doors can still open when emag-disabled
return
if (!ticker)
return 0
if(!src.operating) //in case of emag
src.operating = 1
flick("pdoorc0", src)
src.icon_state = "pdoor0"
sleep(10)
src.density = 0
src.SetOpacity(0)
f1.density = 0
f1.SetOpacity(0)
f2.density = 0
f2.SetOpacity(0)
f3.density = 0
f3.SetOpacity(0)
update_nearby_tiles()
if(operating == 1) //emag again
src.operating = 0
if(autoclose)
spawn(150)
autoclose()
return 1
/obj/machinery/door/poddoor/three_tile_ver/close()
if (src.operating)
return
src.operating = 1
flick("pdoorc1", src)
src.icon_state = "pdoor1"
src.density = 1
f1.density = 1
f1.SetOpacity(1)
f2.density = 1
f2.SetOpacity(1)
f3.density = 1
f3.SetOpacity(1)
if (src.visible)
src.SetOpacity(1)
update_nearby_tiles()
sleep(10)
src.operating = 0
return
/obj/machinery/door/poddoor/four_tile_ver/open()
if (src.operating == 1) //doors can still open when emag-disabled
return
@@ -256,7 +364,7 @@
spawn(150)
autoclose()
return 1
/obj/machinery/door/poddoor/four_tile_ver/close()
if (src.operating)
return
@@ -323,6 +431,54 @@
del f2
..()
*/
/obj/machinery/door/poddoor/three_tile_hor
var/obj/machinery/door/poddoor/filler_object/f1
var/obj/machinery/door/poddoor/filler_object/f2
var/obj/machinery/door/poddoor/filler_object/f3
icon = 'icons/obj/doors/1x3blast_hor.dmi'
New()
..()
f1 = new/obj/machinery/door/poddoor/filler_object (src.loc)
f2 = new/obj/machinery/door/poddoor/filler_object (get_step(f1,EAST))
f3 = new/obj/machinery/door/poddoor/filler_object (get_step(f2,EAST))
f1.density = density
f2.density = density
f3.density = density
f1.SetOpacity(opacity)
f2.SetOpacity(opacity)
f3.SetOpacity(opacity)
Destroy()
del f1
del f2
del f3
..()
/obj/machinery/door/poddoor/three_tile_ver
var/obj/machinery/door/poddoor/filler_object/f1
var/obj/machinery/door/poddoor/filler_object/f2
var/obj/machinery/door/poddoor/filler_object/f3
icon = 'icons/obj/doors/1x3blast_vert.dmi'
New()
..()
f1 = new/obj/machinery/door/poddoor/filler_object (src.loc)
f2 = new/obj/machinery/door/poddoor/filler_object (get_step(f1,NORTH))
f3 = new/obj/machinery/door/poddoor/filler_object (get_step(f2,NORTH))
f1.density = density
f2.density = density
f3.density = density
f1.SetOpacity(opacity)
f2.SetOpacity(opacity)
f3.SetOpacity(opacity)
Destroy()
del f1
del f2
del f3
..()
/obj/machinery/door/poddoor/four_tile_hor
var/obj/machinery/door/poddoor/filler_object/f1
var/obj/machinery/door/poddoor/filler_object/f2
@@ -342,8 +498,8 @@
f4.density = density
f1.SetOpacity(opacity)
f2.SetOpacity(opacity)
f4.SetOpacity(opacity)
f3.SetOpacity(opacity)
f4.SetOpacity(opacity)
Destroy()
del f1
@@ -371,8 +527,8 @@
f4.density = density
f1.SetOpacity(opacity)
f2.SetOpacity(opacity)
f4.SetOpacity(opacity)
f3.SetOpacity(opacity)
f4.SetOpacity(opacity)
Destroy()
del f1
@@ -83,7 +83,7 @@
/obj/item/device/spacepod_equipment/weaponry/taser/proc/fire_weapon_system()
set category = "Spacepod"
set name = "Fire Taser System"
set desc = "Fire ze tasers!"
set desc = "Fire the tasers."
set src = usr.loc
fire_weapons()
@@ -107,7 +107,7 @@
/obj/item/device/spacepod_equipment/weaponry/laser/proc/fire_weapon_system()
set category = "Spacepod"
set name = "Fire Laser System"
set desc = "Fire ze lasers!"
set desc = "Fire the lasers."
set src = usr.loc
fire_weapons()
@@ -1,4 +1,3 @@
// honk
#define DAMAGE 1
#define FIRE 2
@@ -369,6 +368,26 @@
src.occupant = null
usr << "<span class='notice'>You climb out of the pod</span>"
return
/obj/spacepod/verb/toggleDoors()
set name = "Toggle Nearby Pod Doors"
set category = "Spacepod"
set src = usr.loc
for(var/obj/machinery/door/poddoor/P in oview(3,src))
if(istype(P, /obj/machinery/door/poddoor/three_tile_hor) || istype(P, /obj/machinery/door/poddoor/three_tile_ver) || istype(P, /obj/machinery/door/poddoor/four_tile_hor) || istype(P, /obj/machinery/door/poddoor/four_tile_ver))
var/mob/living/carbon/human/L = usr
if(P.check_access(L.get_active_hand()) || P.check_access(L.wear_id))
if(P.density)
P.open()
return 1
else
P.close()
return 1
usr << "<span class='warning'>Access denied.</span>"
return
usr << "<span class='warning'>You are not close to any pod doors.</span>"
return
/obj/spacepod/proc/enter_after(delay as num, var/mob/user as mob, var/numticks = 5)
var/delayfraction = delay/numticks
@@ -170,6 +170,8 @@
if (!rbPDA)
rbPDA = new/obj/item/device/pda/ai(src)
rbPDA.set_name_and_job(custom_name,braintype)
if(syndicateborg)
rbPDA.hidden = 1
//If there's an MMI in the robot, have it ejected when the mob goes away. --NEO
//Improved /N
@@ -1412,7 +1414,6 @@
designation = "Syndicate"
req_access = list(access_syndicate)
/mob/living/silicon/robot/syndicate/New(loc)
..()
cell.maxcharge = 25000
@@ -1423,6 +1424,7 @@
Namepick()
/mob/living/silicon/robot/proc/notify_ai(var/notifytype, var/oldname, var/newname)
if(!connected_ai)
return