Merge pull request #37 from ParadiseSS13/master

Merge from Master
This commit is contained in:
Fox-McCloud
2015-01-01 08:03:46 -05:00
3 changed files with 44 additions and 29 deletions
+20 -20
View File
@@ -8,8 +8,8 @@
required_players = 0
recommended_players = 30
required_players_secret = 20
required_enemies = 5
recommended_enemies = 8
required_enemies = 3
recommended_enemies = 3
var/result = 0
var/checkwin_counter = 0
var/xenos_list = list()
@@ -17,7 +17,7 @@
var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds)
var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds)
var/xenoai = 0 //Should the Xenos have their own AI?
var/xenoborg = 0 //Should the Xenos have their own borg?
var/gammaratio = 4 //At what alien to human ratio will the Gamma security level be called and the nuke be made available?
@@ -170,7 +170,7 @@
send_intercept()
return ..()
/datum/game_mode/xenos/process()
checkwin_counter++
if(checkwin_counter >= 5)
@@ -178,7 +178,7 @@
ticker.mode.check_win()
checkwin_counter = 0
return 0
/datum/game_mode/xenos/check_win()
var/xenosalive = xenos_alive()
@@ -207,7 +207,7 @@
V.locked = 0
V.update_icon()
return ..()
/datum/game_mode/xenos/check_finished()
if(config.continous_rounds)
if(result)
@@ -218,14 +218,14 @@
return 1
else
return 0
/datum/game_mode/xenos/proc/get_nuke_code()
var/nukecode = "ERROR"
for(var/obj/machinery/nuclearbomb/bomb in world)
if(bomb && bomb.r_code && bomb.z == 1)
nukecode = bomb.r_code
return nukecode
return nukecode
/datum/game_mode/xenos/proc/xenos_alive()
var/list/livingxenos = list()
for(var/datum/mind/xeno in xenos)
@@ -233,8 +233,8 @@
if(istype(xeno.current,/mob/living/carbon/alien) || (xenoborg && isrobot(xeno.current)) || (xenoai && isAI(xeno.current)))
livingxenos += xeno
return livingxenos.len
/datum/game_mode/xenos/proc/players_alive()
/datum/game_mode/xenos/proc/players_alive()
var/list/livingplayers = list()
for(var/mob/M in player_list)
var/turf/T = get_turf(M)
@@ -242,12 +242,12 @@
if(ishuman(M))
livingplayers += 1
return livingplayers.len
/datum/game_mode/xenos/declare_completion()
/datum/game_mode/xenos/declare_completion()
if(result == 1)
feedback_set_details("round_end_result","win - xenos killed")
world << "<FONT size = 3><B>Crew Victory</B></FONT>"
world << "<B>The aliens did not succeed and were exterminated by the crew!</B>"
world << "<B>The aliens did not succeed and were exterminated by the crew!</B>"
else if(result == 2)
feedback_set_details("round_end_result","win - crew killed")
world << "<FONT size = 3><B>Alien Victory</B></FONT>"
@@ -255,12 +255,12 @@
else if(station_was_nuked)
feedback_set_details("round_end_result","win - xenos nuked")
world << "<FONT size = 3><B>Crew Victory</B></FONT>"
world << "<B>The station was destroyed in a nuclear explosion, preventing the aliens from overrunning it!</B>"
world << "<B>The station was destroyed in a nuclear explosion, preventing the aliens from overrunning it!</B>"
else
feedback_set_details("round_end_result","win - crew escaped")
world << "<FONT size = 3><B>Draw</B></FONT>"
world << "<B>The crew has escaped from the aliens but did not exterminate them, allowing them to overrun the station.</B>"
feedback_set_details("round_end_result","win - crew escaped")
world << "<FONT size = 3><B>Draw</B></FONT>"
world << "<B>The crew has escaped from the aliens but did not exterminate them, allowing them to overrun the station.</B>"
var/text = "<br><FONT size=3><B>There were [xenos.len] aliens.</B></FONT>"
text += "<br><FONT size=3><B>The aliens were:</B></FONT>"
for(var/datum/mind/xeno in xenos)
@@ -276,6 +276,6 @@
text += "body destroyed"
text += ")"
world << text
..()
return 1
@@ -48,10 +48,13 @@
//Hunter verbs
/mob/living/carbon/alien/humanoid/hunter/proc/toggle_leap()
/mob/living/carbon/alien/humanoid/hunter/proc/toggle_leap(var/message = 1)
leap_on_click = !leap_on_click
leap_icon.icon_state = "leap_[leap_on_click ? "on":"off"]"
src << "<span class='noticealien'>You will now [leap_on_click ? "leap at":"slash at"] enemies!</span>"
if(message)
src << "<span class='noticealien'>You will now [leap_on_click ? "leap at":"slash at"] enemies!</span>"
else
return
/mob/living/carbon/alien/humanoid/hunter/ClickOn(var/atom/A, var/params)
face_atom(A)
@@ -59,10 +62,14 @@
leap_at(A)
else
..()
#define MAX_ALIEN_LEAP_DIST 7
/mob/living/carbon/alien/humanoid/hunter/proc/leap_at(var/atom/A)
if(pounce_cooldown)
src << "<span class='alertalien'>You are too fatigued to pounce right now!</span>"
return
if(leaping) //Leap while you leap, so you can leap while you leap
return
@@ -73,13 +80,14 @@
if(lying)
return
leaping = 1
update_icons()
throw_at(A,MAX_ALIEN_LEAP_DIST,1)
leaping = 0
update_icons()
else //Maybe uses plasma in the future, although that wouldn't make any sense...
leaping = 1
update_icons()
throw_at(A,MAX_ALIEN_LEAP_DIST,1)
leaping = 0
update_icons()
/mob/living/carbon/alien/humanoid/throw_impact(A)
/mob/living/carbon/alien/humanoid/hunter/throw_impact(A)
var/msg = ""
if(A)
@@ -89,6 +97,11 @@
L.Weaken(5)
sleep(2)//Runtime prevention (infinite bump() calls on hulks)
step_towards(src,L)
toggle_leap(0)
pounce_cooldown = !pounce_cooldown
spawn(pounce_cooldown_time) //3s by default
pounce_cooldown = !pounce_cooldown
else
msg = "<span class ='alertalien'>[src] smashes into [A]!</span>"
weakened = 2
@@ -8,6 +8,8 @@
var/obj/item/weapon/l_store = null
var/caste = ""
var/next_attack = 0
var/pounce_cooldown = 0
var/pounce_cooldown_time = 30
update_icon = 1
var/leap_on_click = 0