// Function from file: queen.dm public override bool attack(dynamic M = null, dynamic user = null, bool?def_zone = null) { dynamic A = null; Mob_Living_Carbon_Alien_Humanoid_Royal_Praetorian new_prae = null; if (!(M is Mob_Living_Carbon_Alien_Humanoid) || M is Mob_Living_Carbon_Alien_Humanoid_Royal) { user.WriteMsg("<span class='noticealien'>You may only use this with your adult, non-royal children!</span>"); return(false); } if (GlobalFuncs.alien_type_present(typeof(Mob_Living_Carbon_Alien_Humanoid_Royal_Praetorian))) { user.WriteMsg("<span class='noticealien'>You already have a Praetorian!</span>"); return(false); } A = M; if (Lang13.Bool(A.stat) == false && Lang13.Bool(A.mind) && Lang13.Bool(A.key)) { if (!((Mob_Living_Carbon)user).usePlasma(500)) { user.WriteMsg("<span class='noticealien'>You must have 500 plasma stored to use this!</span>"); return(false); } A.WriteMsg("<span class='noticealien'>The queen has granted you a promotion to Praetorian!</span>"); ((Ent_Static)user).visible_message("<span class='alertalien'>" + A + " begins to expand, twist and contort!</span>"); new_prae = new Mob_Living_Carbon_Alien_Humanoid_Royal_Praetorian(A.loc); ((Mind)A.mind).transfer_to(new_prae); GlobalFuncs.qdel(A); GlobalFuncs.qdel(this); return(false); } else { user.WriteMsg("<span class='warning'>This child must be alert and responsive to become a Praetorian!</span>"); } return(false); }
// Function from file: drone.dm public override bool fire(Mob user = null) { Mob_Living_Carbon_Alien_Humanoid_Royal_Praetorian new_xeno = null; if (!(user.loc is Tile)) { user.WriteMsg("<span class='notice'>You can't evolve here!</span>"); return(false); } if (!GlobalFuncs.alien_type_present(typeof(Mob_Living_Carbon_Alien_Humanoid_Royal))) { new_xeno = new Mob_Living_Carbon_Alien_Humanoid_Royal_Praetorian(user.loc); ((Mob_Living_Carbon_Alien)user).alien_evolve(new_xeno); return(true); } else { user.WriteMsg("<span class='notice'>We already have a living royal!</span>"); return(false); } }