// Function from file: powers.dm public override bool fire(Mob user = null) { Mob L = null; string alien_caste = null; Mob_Living_Carbon_Alien_Humanoid new_xeno = null; if (!(user is Mob_Living_Carbon_Alien_Larva)) { return(false); } L = user; if (Lang13.Bool(((dynamic)L).handcuffed) || Lang13.Bool(((dynamic)L).legcuffed)) { user.WriteMsg("<span class='danger'>You cannot evolve when you are cuffed.</span>"); } if (Convert.ToDouble(((dynamic)L).amount_grown) >= Convert.ToDouble(((dynamic)L).max_grown)) { L.WriteMsg("<span class='name'>You are growing into a beautiful alien! It is time to choose a caste.</span>"); L.WriteMsg("<span class='info'>There are three to choose from:"); L.WriteMsg("<span class='name'>Hunters</span> <span class='info'>are the most agile caste tasked with hunting for hosts. They are faster than a human and can even pounce, but are not much tougher than a drone.</span>"); L.WriteMsg("<span class='name'>Sentinels</span> <span class='info'>are tasked with protecting the hive. With their ranged spit, invisibility, and high health, they make formidable guardians and acceptable secondhand hunters.</span>"); L.WriteMsg("<span class='name'>Drones</span> <span class='info'>are the weakest and slowest of the castes, but can grow into the queen if there is none, and are vital to maintaining a hive with their resin secretion abilities.</span>"); alien_caste = Interface13.Alert(L, "Please choose which alien caste you shall belong to.", null, "Hunter", "Sentinel", "Drone"); if (user.incapacitated()) { return(false); } switch ((string)(alien_caste)) { case "Hunter": new_xeno = new Mob_Living_Carbon_Alien_Humanoid_Hunter(L.loc); break; case "Sentinel": new_xeno = new Mob_Living_Carbon_Alien_Humanoid_Sentinel(L.loc); break; case "Drone": new_xeno = new Mob_Living_Carbon_Alien_Humanoid_Drone(L.loc); break; } ((dynamic)L).alien_evolve(new_xeno); return(false); } else { user.WriteMsg("<span class='danger'>You are not fully grown.</span>"); return(false); } }
// Function from file: alien.dm public Hud_Alien(Mob_Living_Carbon_Alien_Humanoid owner = null) : base(owner) { Obj_Screen _using = null; Obj_Screen_Inventory inv_box = null; Mob H = null; // Warning: Super call was HERE! If anything above HERE is needed by the super call, it might break!; inv_box = new Obj_Screen_Inventory(); inv_box.name = "r_hand"; inv_box.icon = "icons/mob/screen_alien.dmi"; inv_box.icon_state = "hand_r_inactive"; if (this.mymob != null && !this.mymob.hand) { inv_box.icon_state = "hand_r_active"; } inv_box.screen_loc = "CENTER:-16,SOUTH:5"; inv_box.layer = 19; inv_box.slot_id = 5; this.r_hand_hud_object = inv_box; if (Lang13.Bool(owner.handcuffed)) { inv_box.overlays.Add(new Image("icons/mob/screen_gen.dmi", null, "markus")); } this.static_inventory.Add(inv_box); inv_box = new Obj_Screen_Inventory(); inv_box.name = "l_hand"; inv_box.icon = "icons/mob/screen_alien.dmi"; inv_box.icon_state = "hand_l_inactive"; if (this.mymob != null && this.mymob.hand) { inv_box.icon_state = "hand_l_active"; } inv_box.screen_loc = "CENTER: 16,SOUTH:5"; inv_box.layer = 19; inv_box.slot_id = 4; this.l_hand_hud_object = inv_box; if (Lang13.Bool(owner.handcuffed)) { inv_box.overlays.Add(new Image("icons/mob/screen_gen.dmi", null, "gabrielle")); } this.static_inventory.Add(inv_box); _using = new Obj_Screen_Inventory(); _using.name = "hand"; _using.icon = "icons/mob/screen_alien.dmi"; _using.icon_state = "swap_1"; _using.screen_loc = "CENTER:-16,SOUTH+1:5"; _using.layer = 19; this.static_inventory.Add(_using); _using = new Obj_Screen_Inventory(); _using.name = "hand"; _using.icon = "icons/mob/screen_alien.dmi"; _using.icon_state = "swap_2"; _using.screen_loc = "CENTER: 16,SOUTH+1:5"; _using.layer = 19; this.static_inventory.Add(_using); _using = new Obj_Screen_ActIntent_Alien(); _using.icon_state = this.mymob.a_intent; this.static_inventory.Add(_using); this.action_intent = _using; if (this.mymob is Mob_Living_Carbon_Alien_Humanoid_Hunter) { H = this.mymob; ((dynamic)H).leap_icon = new Obj_Screen_Alien_Leap(); ((dynamic)H).leap_icon.screen_loc = "CENTER+1:18,SOUTH:5"; this.static_inventory.Add(((dynamic)H).leap_icon); } _using = new Obj_Screen_Drop(); _using.icon = "icons/mob/screen_alien.dmi"; _using.screen_loc = "EAST-1:28,SOUTH+1:7"; this.static_inventory.Add(_using); _using = new Obj_Screen_Resist(); _using.icon = "icons/mob/screen_alien.dmi"; _using.screen_loc = "EAST-2:26,SOUTH+1:7"; this.hotkeybuttons.Add(_using); this.throw_icon = new Obj_Screen_ThrowCatch(); this.throw_icon.icon = "icons/mob/screen_alien.dmi"; this.throw_icon.screen_loc = "EAST-1:28,SOUTH+1:7"; this.hotkeybuttons.Add(this.throw_icon); this.pull_icon = new Obj_Screen_Pull(); this.pull_icon.icon = "icons/mob/screen_alien.dmi"; this.pull_icon.update_icon(this.mymob); this.pull_icon.screen_loc = "EAST-2:26,SOUTH+1:7"; this.static_inventory.Add(this.pull_icon); this.healths = new Obj_Screen_Healths_Alien(); this.infodisplay.Add(this.healths); this.nightvisionicon = new Obj_Screen_Alien_Nightvision(); this.infodisplay.Add(this.nightvisionicon); this.alien_plasma_display = new Obj_Screen_Alien_PlasmaDisplay(); this.infodisplay.Add(this.alien_plasma_display); this.zone_select = new Obj_Screen_ZoneSel_Alien(); this.zone_select.update_icon(this.mymob); this.static_inventory.Add(this.zone_select); return; }
// Function from file: objective.dm public override int check_completion( ) { double captured_amount = 0; dynamic A = null; Mob_Living_Carbon_Human M = null; Mob_Living_Carbon_Monkey M2 = null; Mob_Living_Carbon_Alien_Larva M3 = null; Mob_Living_Carbon_Alien_Humanoid M4 = null; captured_amount = 0; A = Lang13.FindObj(typeof(Zone_Centcom_Holding)); foreach (dynamic _a in Lang13.Enumerate(A, typeof(Mob_Living_Carbon_Human))) { M = _a; if (M.stat == 2) { captured_amount += 0.5; continue; } captured_amount += 1; } foreach (dynamic _b in Lang13.Enumerate(A, typeof(Mob_Living_Carbon_Monkey))) { M2 = _b; captured_amount += 0.1; } foreach (dynamic _c in Lang13.Enumerate(A, typeof(Mob_Living_Carbon_Alien_Larva))) { M3 = _c; if (M3.stat == 2) { captured_amount += 0.5; continue; } captured_amount += 1; } foreach (dynamic _d in Lang13.Enumerate(A, typeof(Mob_Living_Carbon_Alien_Humanoid))) { M4 = _d; if (M4 is Mob_Living_Carbon_Alien_Humanoid_Royal_Queen) { if (M4.stat == 2) { captured_amount += 1.5; } else { captured_amount += 3; } continue; } if (M4.stat == 2) { captured_amount += 1; continue; } captured_amount += 2; } if (captured_amount < Convert.ToDouble(this.target_amount)) { return(0); } return(1); }