示例#1
0
        // Function from file: hivemind.dm
        public override dynamic sting_action(Mob user = null, Ent_Static target = null)
        {
            Changeling        changeling   = null;
            ByTable           names        = null;
            Changelingprofile prof         = null;
            dynamic           chosen_name  = null;
            Changelingprofile chosen_dna   = null;
            dynamic           uploaded_dna = null;

            changeling = user.mind.changeling;
            names      = new ByTable();

            foreach (dynamic _a in Lang13.Enumerate(changeling.stored_profiles, typeof(Changelingprofile)))
            {
                prof = _a;


                if (!GlobalVars.hivemind_bank.Contains(prof))
                {
                    names.Add(prof.name);
                }
            }

            if (names.len <= 0)
            {
                user.WriteMsg("<span class='notice'>The airwaves already have all of our DNA.</span>");
                return(null);
            }
            chosen_name = Interface13.Input("Select a DNA to channel: ", "Channel DNA", null, null, names, InputType.Null | InputType.Any);

            if (!Lang13.Bool(chosen_name))
            {
                return(null);
            }
            chosen_dna = changeling.get_dna(chosen_name);

            if (!(chosen_dna != null))
            {
                return(null);
            }
            uploaded_dna = Lang13.Call(chosen_dna.type);
            chosen_dna.copy_profile(uploaded_dna);
            GlobalVars.hivemind_bank.Add(uploaded_dna);
            user.WriteMsg("<span class='notice'>We channel the DNA of " + chosen_name + " to the air.</span>");
            GlobalFuncs.feedback_add_details("changeling_powers", "HU");
            return(1);
        }
        // Function from file: humanform.dm
        public override dynamic sting_action(Mob user = null, Ent_Static target = null)
        {
            Changeling        changeling  = null;
            ByTable           names       = null;
            Changelingprofile prof        = null;
            dynamic           chosen_name = null;
            Changelingprofile chosen_prof = null;
            dynamic           newmob      = null;

            changeling = user.mind.changeling;
            names      = new ByTable();

            foreach (dynamic _a in Lang13.Enumerate(changeling.stored_profiles, typeof(Changelingprofile)))
            {
                prof = _a;

                names.Add("" + prof.name);
            }
            chosen_name = Interface13.Input("Select the target DNA: ", "Target DNA", null, null, names, InputType.Null | InputType.Any);

            if (!Lang13.Bool(chosen_name))
            {
                return(null);
            }
            chosen_prof = changeling.get_dna(chosen_name);

            if (!(chosen_prof != null))
            {
                return(null);
            }

            if (!(user != null) || Lang13.Bool(user.notransform))
            {
                return(0);
            }
            user.WriteMsg("<span class='notice'>We transform our appearance.</span>");
            changeling.purchasedpowers.Remove(this);
            newmob = ((dynamic)user).humanize(279);
            GlobalFuncs.changeling_transform(newmob, chosen_prof);
            GlobalFuncs.feedback_add_details("changeling_powers", "LFT");
            return(1);
        }