mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
-more dismantable consoles: --Teleporter --Supply ordering console --Supply shuttle console --Power Monitor -new circuit boards (both constructable and destructable) --Supply ordering console (programming 2) --Supply shuttle console (programming 3) --Outpost Status Display(programming 2) --Operating Computer (programming 2, biotech 2) -R&D Console circuit now requires programming 4 (was 6). Balagi updates: -Trash bag: works as mining satchels but for trash. -Started redesign computers code -fixed candles sprites -trashbag now has "in hands" sprite -fixed emagging supply shuttle console git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1883 316c924e-a436-60f5-8080-3fe189b3f50e
168 lines
4.7 KiB
Plaintext
168 lines
4.7 KiB
Plaintext
/obj/machinery/computer/arcade/New()
|
|
..()
|
|
var/name_action
|
|
var/name_part1
|
|
var/name_part2
|
|
|
|
name_action = pick("Defeat ", "Annihilate ", "Save ", "Strike ", "Stop ", "Destroy ", "Robust ", "Romance ", "Rape ")
|
|
|
|
name_part1 = pick("the Automatic ", "Farmer ", "Lord ", "Professor ", "the Cuban ", "the Evil ", "the Dread King ", "the Space ", "Lord ")
|
|
name_part2 = pick("Melonoid", "Murdertron", "Sorcerer", "Ruin", "Jeff", "Ectoplasm", "Crushulon", "Uhangoid", "Vhakoid", "Peteoid")
|
|
|
|
src.enemy_name = dd_replacetext((name_part1 + name_part2), "the ", "")
|
|
src.name = (name_action + name_part1 + name_part2)
|
|
|
|
|
|
/obj/machinery/computer/arcade/attack_ai(mob/user as mob)
|
|
return src.attack_hand(user)
|
|
|
|
/obj/machinery/computer/arcade/attack_paw(mob/user as mob)
|
|
return src.attack_hand(user)
|
|
|
|
/obj/machinery/computer/arcade/attack_hand(mob/user as mob)
|
|
if(..())
|
|
return
|
|
user.machine = src
|
|
var/dat = "<a href='byond://?src=\ref[src];close=1'>Close</a>"
|
|
dat += "<center><h4>[src.enemy_name]</h4></center>"
|
|
|
|
dat += "<br><center><h3>[src.temp]</h3></center>"
|
|
dat += "<br><center>Health: [src.player_hp] | Magic: [src.player_mp] | Enemy Health: [src.enemy_hp]</center>"
|
|
|
|
if (src.gameover)
|
|
dat += "<center><b><a href='byond://?src=\ref[src];newgame=1'>New Game</a>"
|
|
else
|
|
dat += "<center><b><a href='byond://?src=\ref[src];attack=1'>Attack</a> | "
|
|
dat += "<a href='byond://?src=\ref[src];heal=1'>Heal</a> | "
|
|
dat += "<a href='byond://?src=\ref[src];charge=1'>Recharge Power</a>"
|
|
|
|
dat += "</b></center>"
|
|
|
|
user << browse(dat, "window=arcade")
|
|
onclose(user, "arcade")
|
|
return
|
|
|
|
/obj/machinery/computer/arcade/Topic(href, href_list)
|
|
if(..())
|
|
return
|
|
|
|
if (!src.blocked)
|
|
if (href_list["attack"])
|
|
src.blocked = 1
|
|
var/attackamt = rand(2,6)
|
|
src.temp = "You attack for [attackamt] damage!"
|
|
src.updateUsrDialog()
|
|
|
|
sleep(10)
|
|
src.enemy_hp -= attackamt
|
|
src.arcade_action()
|
|
|
|
else if (href_list["heal"])
|
|
src.blocked = 1
|
|
var/pointamt = rand(1,3)
|
|
var/healamt = rand(6,8)
|
|
src.temp = "You use [pointamt] magic to heal for [healamt] damage!"
|
|
src.updateUsrDialog()
|
|
|
|
sleep(10)
|
|
src.player_mp -= pointamt
|
|
src.player_hp += healamt
|
|
src.blocked = 1
|
|
src.updateUsrDialog()
|
|
src.arcade_action()
|
|
|
|
else if (href_list["charge"])
|
|
src.blocked = 1
|
|
var/chargeamt = rand(4,7)
|
|
src.temp = "You regain [chargeamt] points"
|
|
src.player_mp += chargeamt
|
|
|
|
src.updateUsrDialog()
|
|
sleep(10)
|
|
src.arcade_action()
|
|
|
|
if (href_list["close"])
|
|
usr.machine = null
|
|
usr << browse(null, "window=arcade")
|
|
|
|
else if (href_list["newgame"]) //Reset everything
|
|
temp = "New Round"
|
|
player_hp = 30
|
|
player_mp = 10
|
|
enemy_hp = 45
|
|
enemy_mp = 20
|
|
gameover = 0
|
|
|
|
src.add_fingerprint(usr)
|
|
src.updateUsrDialog()
|
|
return
|
|
|
|
/obj/machinery/computer/arcade/proc/arcade_action()
|
|
if ((src.enemy_mp <= 0) || (src.enemy_hp <= 0))
|
|
src.gameover = 1
|
|
src.temp = "[src.enemy_name] has fallen! Rejoice!"
|
|
var/obj/item/prize
|
|
var/prizeselect = pick(1,2,3,4,5,6,7,8)
|
|
switch(prizeselect)
|
|
if(1)
|
|
prize = new /obj/item/weapon/spacecash(src.loc)
|
|
prize.name = "space ticket"
|
|
prize.desc = "It's almost like actual currency!"
|
|
if(2)
|
|
prize = new /obj/item/toy/blink(src.loc)
|
|
if(3)
|
|
prize = new /obj/item/clothing/under/syndicate/tacticool(src.loc)
|
|
if(4)
|
|
prize = new /obj/item/toy/sword(src.loc)
|
|
if(5)
|
|
prize = new /obj/item/toy/ammo/gun(src.loc)
|
|
prize = new /obj/item/toy/gun(src.loc)
|
|
if(6)
|
|
prize = new /obj/item/toy/crossbow(src.loc)
|
|
if(7)
|
|
prize = new /obj/item/clothing/suit/syndicatefake(src.loc)
|
|
prize = new /obj/item/clothing/head/syndicatefake(src.loc)
|
|
if(8)
|
|
prize = new /obj/item/toy/crayonbox(loc)
|
|
|
|
|
|
else if ((src.enemy_mp <= 5) && (prob(70)))
|
|
var/stealamt = rand(2,3)
|
|
src.temp = "[src.enemy_name] steals [stealamt] of your power!"
|
|
src.player_mp -= stealamt
|
|
src.updateUsrDialog()
|
|
|
|
if (src.player_mp <= 0)
|
|
src.gameover = 1
|
|
sleep(10)
|
|
src.temp = "You have been drained! GAME OVER"
|
|
|
|
else if ((src.enemy_hp <= 10) && (src.enemy_mp > 4))
|
|
src.temp = "[src.enemy_name] heals for 4 health!"
|
|
src.enemy_hp += 4
|
|
src.enemy_mp -= 4
|
|
|
|
else
|
|
var/attackamt = rand(3,6)
|
|
src.temp = "[src.enemy_name] attacks for [attackamt] damage!"
|
|
src.player_hp -= attackamt
|
|
|
|
if ((src.player_mp <= 0) || (src.player_hp <= 0))
|
|
src.gameover = 1
|
|
src.temp = "You have been crushed! GAME OVER"
|
|
|
|
src.blocked = 0
|
|
return
|
|
|
|
/obj/machinery/computer/arcade/power_change()
|
|
|
|
if(stat & BROKEN)
|
|
icon_state = "arcadeb"
|
|
else
|
|
if( powered() )
|
|
icon_state = initial(icon_state)
|
|
stat &= ~NOPOWER
|
|
else
|
|
spawn(rand(0, 15))
|
|
src.icon_state = "arcade0"
|
|
stat |= NOPOWER |