Merge branch 'master' of https://github.com/Baystation12/Baystation12 into bs12_with_tgport

This commit is contained in:
Cael_Aislinn
2012-11-07 15:48:10 +10:00
16 changed files with 177 additions and 35 deletions
+2 -2
View File
@@ -307,8 +307,8 @@
var/obj/item/weapon/organ/H
switch(body_part)
if(UPPER_TORSO)
owner.gib()
// if(UPPER_TORSO) just no.
// owner.gib()
if(LOWER_TORSO)
owner << "\red You are now sterile."
if(HEAD)
+6 -6
View File
@@ -820,14 +820,14 @@ Auto Patrol: []"},
projectile = /obj/item/projectile/energy/electrode
else if(lasercolor == "b")
if (src.emagged == 2)
projectile = /obj/item/projectile/omnitag
projectile = /obj/item/projectile/beam/omnitag
else
projectile = /obj/item/projectile/bluetag
projectile = /obj/item/projectile/beam/bluetag
else if(lasercolor == "r")
if (src.emagged == 2)
projectile = /obj/item/projectile/omnitag
projectile = /obj/item/projectile/beam/omnitag
else
projectile = /obj/item/projectile/redtag
projectile = /obj/item/projectile/beam/redtag
if (!( istype(U, /turf) ))
return
@@ -1011,7 +1011,7 @@ Auto Patrol: []"},
/obj/machinery/bot/ed209/bullet_act(var/obj/item/projectile/Proj)
if((src.lasercolor == "b") && (src.disabled == 0))
if(istype(Proj, /obj/item/projectile/redtag))
if(istype(Proj, /obj/item/projectile/beam/redtag))
src.disabled = 1
del (Proj)
sleep(100)
@@ -1019,7 +1019,7 @@ Auto Patrol: []"},
else
..()
else if((src.lasercolor == "r") && (src.disabled == 0))
if(istype(Proj, /obj/item/projectile/bluetag))
if(istype(Proj, /obj/item/projectile/beam/bluetag))
src.disabled = 1
del (Proj)
sleep(100)
@@ -27,6 +27,7 @@
var/const/STATE_STATUSDISPLAY = 7
var/const/STATE_ALERT_LEVEL = 8
var/const/STATE_CONFIRM_LEVEL = 9
var/const/STATE_CREWTRANSFER = 10
var/status_display_freq = "1435"
var/stat_msg1
@@ -121,6 +122,15 @@
if(emergency_shuttle.online)
post_status("shuttle")
src.state = STATE_DEFAULT
if("crewtransfer")
src.state= STATE_DEFAULT
if(src.authenticated)
src.state = STATE_CREWTRANSFER
if("crewtransfer2")
if(src.authenticated)
init_shift_change(usr) //key difference here
if(emergency_shuttle.online)
post_status("shuttle")
if("cancelshuttle")
src.state = STATE_DEFAULT
if(src.authenticated)
@@ -313,6 +323,7 @@
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=cancelshuttle'>Cancel Shuttle Call</A> \]"
else
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=callshuttle'>Call Emergency Shuttle</A> \]"
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=crewtransfer'>Initiate Crew Transfer</A> \]"
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=status'>Set Status Display</A> \]"
else
@@ -320,6 +331,8 @@
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=messagelist'>Message List</A> \]"
if(STATE_CALLSHUTTLE)
dat += "Are you sure you want to call the shuttle? \[ <A HREF='?src=\ref[src];operation=callshuttle2'>OK</A> | <A HREF='?src=\ref[src];operation=main'>Cancel</A> \]"
if(STATE_CREWTRANSFER) // this is the shiftchage screen.
dat += "Are you sure you want to initiate a crew transfer? This will call the shuttle. \[ <a HREF='?src=\ref[src];operation=crewtransfer2'>OK</a> | <A HREF='?src=\ref[src];operation=main'>Cancel</A> \]"
if(STATE_CANCELSHUTTLE)
dat += "Are you sure you want to cancel the shuttle? \[ <A HREF='?src=\ref[src];operation=cancelshuttle2'>OK</A> | <A HREF='?src=\ref[src];operation=main'>Cancel</A> \]"
if(STATE_MESSAGELIST)
@@ -458,6 +471,47 @@
return
/proc/init_shift_change(var/mob/user, var/force = 0)
if ((!( ticker ) || emergency_shuttle.location))
return
if(emergency_shuttle.direction == -1)
user << "The shuttle may not be called while returning to CentCom."
return
if(emergency_shuttle.online)
user << "The shuttle is already on its way."
return
// if force is 0, some things may stop the shuttle call
if(!force)
if(emergency_shuttle.deny_shuttle)
user << "Centcom does not currently have a shuttle available in your sector. Please try again later."
return
if(sent_strike_team == 1)
user << "Centcom will not allow the shuttle to be called. Consider all contracts terminated."
return
if(world.time < 54000) // 30 minute grace period to let the game get going
user << "The shuttle is refueling. Please wait another [round((54000-world.time)/600)] minutes before trying again."//may need to change "/600"
return
if(ticker.mode.name == "revolution" || ticker.mode.name == "AI malfunction" || ticker.mode.name == "sandbox")
//New version pretends to call the shuttle but cause the shuttle to return after a random duration.
emergency_shuttle.fake_recall = rand(300,500)
if(ticker.mode.name == "blob" || ticker.mode.name == "epidemic")
user << "Under directive 7-10, [station_name()] is quarantined until further notice."
return
emergency_shuttle.shuttlealert(1)
emergency_shuttle.incall()
log_game("[key_name(user)] has called the shuttle.")
message_admins("[key_name_admin(user)] has called the shuttle.", 1)
captain_announce("A crew transfer has been initiated. The shuttle has been called. It will arrive in [round(emergency_shuttle.timeleft()/60)] minutes.")
return
/proc/cancel_call_proc(var/mob/user)
if ((!( ticker ) || emergency_shuttle.location || emergency_shuttle.direction == 0 || emergency_shuttle.timeleft() < 300))
+7 -7
View File
@@ -76,8 +76,8 @@
// All energy-based weapons are applicable
switch(E.type)
if(/obj/item/weapon/gun/energy/laser/bluetag)
projectile = /obj/item/projectile/bluetag
eprojectile = /obj/item/projectile/omnitag//This bolt will stun ERRYONE with a vest
projectile = /obj/item/projectile/beam/bluetag
eprojectile = /obj/item/projectile/beam/omnitag//This bolt will stun ERRYONE with a vest
iconholder = null
reqpower = 100
lasercolor = "b"
@@ -90,8 +90,8 @@
shot_delay = 30
if(/obj/item/weapon/gun/energy/laser/redtag)
projectile = /obj/item/projectile/redtag
eprojectile = /obj/item/projectile/omnitag
projectile = /obj/item/projectile/beam/redtag
eprojectile = /obj/item/projectile/beam/omnitag
iconholder = null
reqpower = 100
lasercolor = "r"
@@ -104,7 +104,7 @@
shot_delay = 30
if(/obj/item/weapon/gun/energy/laser/practice)
projectile = /obj/item/projectile/practice
projectile = /obj/item/projectile/beam/practice
eprojectile = /obj/item/projectile/beam
iconholder = null
reqpower = 100
@@ -375,13 +375,13 @@ Status: []<BR>"},
if (src.health <= 0)
src.die() // the death process :(
if((src.lasercolor == "b") && (src.disabled == 0))
if(istype(Proj, /obj/item/projectile/redtag))
if(istype(Proj, /obj/item/projectile/beam/redtag))
src.disabled = 1
del (Proj)
sleep(100)
src.disabled = 0
if((src.lasercolor == "r") && (src.disabled == 0))
if(istype(Proj, /obj/item/projectile/bluetag))
if(istype(Proj, /obj/item/projectile/beam/bluetag))
src.disabled = 1
del (Proj)
sleep(100)
+2 -2
View File
@@ -221,9 +221,9 @@
if(4)
A = new /obj/item/projectile/change( loc )
if(5)
A = new /obj/item/projectile/bluetag( loc )
A = new /obj/item/projectile/beam/bluetag( loc )
if(6)
A = new /obj/item/projectile/redtag( loc )
A = new /obj/item/projectile/beam/redtag( loc )
A.original = target.loc
use_power(500)
else
+1 -1
View File
@@ -114,7 +114,7 @@
bmark.pixel_x--
bmark.pixel_y--
if(Proj.damage >= 20 || istype(Proj, /obj/item/projectile/practice))
if(Proj.damage >= 20 || istype(Proj, /obj/item/projectile/beam/practice))
bmark.icon_state = "scorch"
bmark.dir = pick(NORTH,SOUTH,EAST,WEST) // random scorch design
@@ -93,7 +93,9 @@
"/obj/item/weapon/cigpacket",
"/obj/item/weapon/storage/pill_bottle",
"/obj/item/stack/medical",
"/obj/item/device/flashlight/pen"
"/obj/item/device/flashlight/pen",
"/obj/item/clothing/mask/surgical",
"/obj/item/clothing/gloves/latex"
)
@@ -554,4 +554,8 @@
..()
return
/obj/item/weapon/storage/pill_bottle/New()
pixel_x = rand (-7,7)
pixel_y = rand (-7,7)
..()
////////////////////////////////////////////////////////////////////////////////
+5 -5
View File
@@ -99,12 +99,12 @@
H.apply_effect(10, STUTTER, 0)
charges--
H.visible_message("<span class='danger'>[src] hits [H] with stunning end!</span>")
H.attack_log += "\[[time_stamp()]\]<font color='orange'> Stunned by thrown [src.name]</font>"
log_attack("<font color='red'>Flying [src.name] stunned [H.name] ([H.ckey])</font>" )
H.visible_message("<span class='danger'>[src], thrown by ([src.fingerprintslast]) hits [H] with stunning end!</span>")
H.attack_log += "\[[time_stamp()]\]<font color='orange'> Stunned by thrown [src.name] (([src.fingerprintslast]))</font>"
log_attack("<font color='red'>Flying [src.name], thrown by ([src.fingerprintslast]) stunned [H.name] ([H.ckey])</font>" )
log_admin("ATTACK: Flying [src.name] stunned [H.name] ([H.ckey])")
msg_admin_attack("ATTACK: Flying [src.name] stunned [H.name] ([H.ckey])") //BS12 EDIT ALG
log_admin("ATTACK: Flying [src.name], thrown by ([src.fingerprintslast]) stunned [H.name] ([H.ckey])")
msg_admin_attack("ATTACK: Flying [src.name], thrown by ([src.fingerprintslast]) stunned [H.name] ([H.ckey]).") //BS12 EDIT ALG
return
return ..()
@@ -90,7 +90,7 @@ obj/item/weapon/gun/energy/laser/retro
name = "laser tag gun"
icon_state = "bluetag"
desc = "Standard issue weapon of the Imperial Guard"
projectile_type = "/obj/item/projectile/bluetag"
projectile_type = "/obj/item/projectile/beam/bluetag"
origin_tech = "combat=1;magnets=2"
clumsy_check = 0
var/charge_tick = 0
@@ -127,7 +127,7 @@ obj/item/weapon/gun/energy/laser/retro
name = "laser tag gun"
icon_state = "redtag"
desc = "Standard issue weapon of the Imperial Guard"
projectile_type = "/obj/item/projectile/redtag"
projectile_type = "/obj/item/projectile/beam/redtag"
origin_tech = "combat=1;magnets=2"
clumsy_check = 0
var/charge_tick = 0
+72 -6
View File
@@ -1,14 +1,80 @@
var/list/beam_master = list()
//Use: Caches beam state images and holds turfs that had these images overlaid.
//Structure:
//beam_master
// icon_states/dirs of beams
// image for that beam
// references for fired beams
// icon_states/dirs for each placed beam image
// turfs that have that icon_state/dir
/obj/item/projectile/beam
name = "laser"
icon_state = "laser"
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
damage = 20
damage = 40
damage_type = BURN
flag = "laser"
eyeblur = 2
eyeblur = 4
var/frequency = 1
process()
var/reference = "\ref[src]" //So we do not have to recalculate it a ton
var/first = 1 //So we don't make the overlay in the same tile as the firer
/obj/item/projectile/practice
spawn(0)
while(!bumped) //Move until we hit something
step_towards(src, current) //Move~
for(var/mob/living/M in loc)
Bump(M) //Bump anyone we touch
if((!( current ) || loc == current)) //If we pass our target
current = locate(min(max(x + xo, 1), world.maxx), min(max(y + yo, 1), world.maxy), z)
if((x == 1 || x == world.maxx || y == 1 || y == world.maxy))
del(src) //Delete if it passes the world edge
return
if(!first) //Add the overlay as we pass over tiles
var/target_dir = get_dir(src, current) //So we don't call this too much
//If the icon has not been added yet
if( !("[icon_state][target_dir]" in beam_master) )
var/image/I = image(icon,icon_state,10,target_dir) //Generate it.
beam_master["[icon_state][target_dir]"] = I //And cache it!
//Finally add the overlay
src.loc.overlays += beam_master["[icon_state][target_dir]"]
//Add the turf to a list in the beam master so they can be cleaned up easily.
if(reference in beam_master)
var/list/turf_master = beam_master[reference]
if("[icon_state][target_dir]" in turf_master)
var/list/turfs = turf_master["[icon_state][target_dir]"]
turfs += loc
else
turf_master["[icon_state][target_dir]"] = list(loc)
else
var/list/turfs = list()
turfs["[icon_state][target_dir]"] = list(loc)
beam_master[reference] = turfs
else
first = 0
cleanup(reference)
return
proc/cleanup(reference) //Waits .3 seconds then removes the overlay.
src = null
sleep(3)
var/list/turf_master = beam_master[reference]
for(var/laser_state in turf_master)
var/list/turfs = turf_master[laser_state]
for(var/turf/T in turfs)
T.overlays -= beam_master[laser_state]
return
/obj/item/projectile/beam/practice
name = "laser"
icon_state = "laser"
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
@@ -45,7 +111,7 @@
/obj/item/projectile/bluetag
/obj/item/projectile/beam/bluetag
name = "lasertag beam"
icon_state = "bluelaser"
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
@@ -60,7 +126,7 @@
M.Weaken(5)
return 1
/obj/item/projectile/redtag
/obj/item/projectile/beam/redtag
name = "lasertag beam"
icon_state = "laser"
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
@@ -75,7 +141,7 @@
M.Weaken(5)
return 1
/obj/item/projectile/omnitag//A laser tag bolt that stuns EVERYONE
/obj/item/projectile/beam/omnitag//A laser tag bolt that stuns EVERYONE
name = "lasertag beam"
icon_state = "omnilaser"
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
@@ -153,8 +153,8 @@
if(istype(P,/obj/item/projectile/beam)) src.Artifact_Activate()
else if(istype(P,/obj/item/projectile/ion)) src.Artifact_Activate()
else if(istype(P,/obj/item/projectile/energy)) src.Artifact_Activate()
else if(istype(P,/obj/item/projectile/bluetag)) src.Artifact_Activate()
else if(istype(P,/obj/item/projectile/redtag)) src.Artifact_Activate()
else if(istype(P,/obj/item/projectile/beam/bluetag)) src.Artifact_Activate()
else if(istype(P,/obj/item/projectile/beam/redtag)) src.Artifact_Activate()
if (my_effect.trigger == "heat")
if(istype(P,/obj/item/projectile/temp)) src.Artifact_Activate()
+1 -1
View File
@@ -26,7 +26,7 @@ em {font-style: normal; font-weight: bold;}
.deadsay {color: #5c00e6;}
.radio {color: #008000;}
.deptradio {color: #993399;}
.comradio {color: #ACA82D;}
.comradio {color: #885500;}
.syndradio {color: #6D3F40;}
.alert {color: #ff0000;}
+16
View File
@@ -56,6 +56,22 @@ Stuff which is in development and not yet visible to players or just code relate
should be listed in the changelog upon commit though. Thanks. -->
<!-- To take advantage of the pretty new format (well it was new when I wrote this anyway), open the "add-to-changelog.html" file in any browser and add the stuff and then generate the html code and paste it here -->
<div class="commit sansserif">
<h2 class="date">6.11.2012</h2>
<h3 class="author">Chinsky updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Crew Transfer shuttles are back.</li>
<li class="rscadd">Readded pre-merge photo system. Instead of one picture as icon, now photo can be examined to see 3x3 screenshot.</li>
<li class="rscadd">Custom items system is back. If your item is not spawning or is missing icon, report it.</li>
<li class="rscadd">Alt job titles system is back. For noe medical titles (MD/Surgeon/EMT) and Detective/Foreniscs Tech.</li>
<li class="experiment">ROBUSTING CHANGE: Disarming someone with gun in hand has chance that said gun will go off in random direction. With veruy real posibility of you getting shot.</li>
<li class="experiment">FLYING BATON OF JUSTICE: Turned on stunbaton has 50% chance of stunning if thrown at someone. </li>
<li class="rscadd">Character medical and security records can again be set on char setup.</li>
<li class="bugfix">Vote window now will go away (thanks TG for fix)</li>
<li class="experiment">Maybe something else, play and you will find.</li>
</ul>
</div>
<div class="commit sansserif">
<h2 class="date">November 4th</h2>
<h3 class="author">SkyMarshal updated:</h3>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 233 KiB

After

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 25 KiB