Example #1
0
        // 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);
            }
        }
Example #2
0
        // 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;
        }
Example #3
0
        // 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);
        }