Esempio n. 1
0
        private static void ApplyNonSalve(ObjectInstance salve, CharacterInstance actor, CharacterInstance victim)
        {
            if (victim == actor)
            {
                comm.act(ATTypes.AT_ACTION, "$n starts to rub $p on $mself...", actor, salve, victim, ToTypes.Room);
                comm.act(ATTypes.AT_ACTION, "You try to rub $p on yourself....", actor, salve, victim, ToTypes.Character);
                return;
            }

            comm.act(ATTypes.AT_ACTION, "$n starts to rub $p on $N...", actor, salve, victim, ToTypes.NotVictim);
            comm.act(ATTypes.AT_ACTION, "$n starts to rub $p on you...", actor, salve, victim, ToTypes.Victim);
            comm.act(ATTypes.AT_ACTION, "You try to rub $p on $N...", actor, salve, victim, ToTypes.Character);
        }
Esempio n. 2
0
 public static bool CheckSkill(CharacterInstance ch, string command, string argument)
 {
     return(Ability.CheckAbility(ch, command, argument));
 }
Esempio n. 3
0
 public static IEnumerator ExecuteRoutine(CharacterInstance c, int rank, SkillExecutionStats executionStats)
 {
Esempio n. 4
0
 public static void StopHunting(this CharacterInstance ch)
 {
     ch.CurrentHunting = null;
 }
Esempio n. 5
0
 public static bool IsHunting(this CharacterInstance ch, CharacterInstance victim)
 {
     return(ch.CurrentHunting != null &&
            ch.CurrentHunting.Who == victim);
 }
Esempio n. 6
0
 public static void do_sneak(CharacterInstance ch, string argument)
 {
     // TODO
 }
Esempio n. 7
0
 public static int spell_remove_trap(int sn, int level, CharacterInstance ch, object vo)
 {
     // TODO
     return(0);
 }
Esempio n. 8
0
 private static bool ReflectDamage(int sn, int level, CharacterInstance ch, CharacterInstance vch)
 {
     Attack.spell_attack(sn, level, vch, ch);
     return(ch.CharDied());
 }
Esempio n. 9
0
        private static int GetDamageIfSaved(int sn, int level, CharacterInstance ch, SkillData skill, CharacterInstance vch,
                                            int damage)
        {
            var spellSaveType =
                EnumerationExtensions.GetEnum <SpellSaveEffectTypes>(
                    Macros.SPELL_SAVE(skill));

            switch (spellSaveType)
            {
            case SpellSaveEffectTypes.ThreeQuartersDamage:
                damage = GetThreeQuartersDamage(damage);
                break;

            case SpellSaveEffectTypes.HalfDamage:
                damage = GetHalfDamage(damage);
                break;

            case SpellSaveEffectTypes.QuarterDamage:
                damage = GetQuarterDamage(damage);
                break;

            case SpellSaveEffectTypes.EighthDamage:
                damage = GetEighthDamage(damage);
                break;

            case SpellSaveEffectTypes.Absorb:
                AbsorbDamage(ch, skill, vch, damage);
                return(damage);

            case SpellSaveEffectTypes.Reflect:
                if (ReflectDamage(sn, level, ch, vch))
                {
                    break;
                }
                return(damage);
            }
            return(damage);
        }
Esempio n. 10
0
        public static double CalculateDustBundleSize(CharacterInstance character, string shopEntryId)
        {
            double baseAmount = App.Binder.ConfigMeta.VENDOR_DUST_BUNDLES[shopEntryId];

            return(Math.Floor(CharacterStatModifierUtil.ApplyDustBonuses(character, baseAmount)));
        }
Esempio n. 11
0
 private static int GetBaseDamage(int level, CharacterInstance ch, SkillData skill)
 {
     return(!string.IsNullOrEmpty(skill.Dice)
         ? magic.ParseDiceExpression(ch, skill.DieCharacterMessage)
         : SmaugRandom.Between(1, level / 2));
 }
Esempio n. 12
0
 public static void Execute(CharacterInstance ch, ObjectInstance obj)
 {
 }
Esempio n. 13
0
 private void onCharacterMeleeAttackStarted(CharacterInstance sourceCharacter, CharacterInstance targetCharacter)
 {
     if (!base.CharacterView.IsMenuView && (sourceCharacter == base.CharacterView.Character))
     {
         base.startAction(AbstractCharacterAnimator.Action.ATTACK_MELEE, base.CharacterView.Character.getAttackDuration() * 1.2f, true, this.m_meleeAttackClipIdx, -1f);
         if ((this.m_meleeAttackClipIdx % 2) == 0)
         {
             this.m_meleeAttackClipIdx = (UnityEngine.Random.Range(0, 2) != 0) ? 3 : 1;
         }
         else
         {
             this.m_meleeAttackClipIdx = (UnityEngine.Random.Range(0, 2) != 0) ? 2 : 0;
         }
     }
 }
Esempio n. 14
0
 public static void do_detrap(CharacterInstance ch, string argument)
 {
     // TODO
 }
Esempio n. 15
0
 public static int spell_cure_poison(int sn, int level, CharacterInstance ch, object vo)
 {
     // TODO
     return(0);
 }
Esempio n. 16
0
 public static void Execute(CharacterInstance ch)
 {
 }
Esempio n. 17
0
 public static int spell_faerie_fire(int sn, int level, CharacterInstance ch, object vo)
 {
     // TODO
     return(0);
 }
Esempio n. 18
0
 private static void SetChannel(CharacterInstance ch, ChannelTypes channelType)
 {
     ch.Deaf = ch.Deaf.SetBit(channelType);
 }
Esempio n. 19
0
 public static int spell_create_food(int sn, int level, CharacterInstance ch, object vo)
 {
     // TODO
     return(0);
 }
Esempio n. 20
0
 private static void RemoveChannel(CharacterInstance ch, ChannelTypes channelType)
 {
     ch.Deaf = ch.Deaf.RemoveBit(channelType);
 }
Esempio n. 21
0
 public static void do_description(CharacterInstance ch, string argument)
 {
     // TODO
 }
Esempio n. 22
0
        public static void do_ban(CharacterInstance ch, string argument)
        {
            if (CheckFunctions.CheckIfTrue(ch, ch.IsNpc(), "Monsters are too dumb to do that!"))
            {
                return;
            }

            var pch = (PlayerInstance)ch;

            ch.SetColor(ATTypes.AT_IMMORT);
            var args = new string[4];

            args[0] = argument.ParseWord(1, " ");
            args[1] = argument.ParseWord(2, " ");
            args[2] = argument.ParseWord(3, " ");
            args[3] = argument.ParseWord(4, " ");

            var tempTime = args[3].IsNullOrWhitespace() && !args[3].IsNumber() ? -1 : Convert.ToInt32(args[3]);

            if (CheckFunctions.CheckIfTrue(ch, tempTime != -1 && (tempTime < 1 || tempTime > 1000),
                                           "Time value is -1 (forever) or from 1 to 1000."))
            {
                return;
            }

            // Convert the value from DAYS to SECONDS
            var duration = tempTime > 0 ? tempTime * 86400 : tempTime;

            if (CheckFunctions.CheckIfTrue(pch, pch.SubState == CharacterSubStates.Restricted,
                                           "You cannot use this command from within another command."))
            {
                return;
            }

            switch (pch.SubState)
            {
            case CharacterSubStates.None:
                pch.tempnum = (int)CharacterSubStates.None;
                break;

            case CharacterSubStates.BanDescription:
                // TODO: add_ban(ch, "", "", 0, 0);
                return;

            default:
                LogManager.Instance.Bug("Illegal Characer Substate (Name={0}, SubState={1}", pch.Name, pch.SubState);
                return;
            }

            if (args[0].IsNullOrWhitespace())
            {
                SendSyntaxMessage(ch);
                return;
            }

            // site, race, class, show (default is null)
            if (args[0].EqualsIgnoreCase("site"))
            {
                DoSiteBan(ch, args, duration);
            }
            else if (args[0].EqualsIgnoreCase("race"))
            {
                DoRaceBan(ch, args, duration);
            }
            else if (args[0].EqualsIgnoreCase("class"))
            {
                DoClassBan(ch, args, duration);
            }
            else if (args[0].EqualsIgnoreCase("show") || args[0].IsNullOrWhitespace())
            {
                DoShowBans(ch, args);
            }
            else
            {
                SendSyntaxMessage(ch);
            }
        }
Esempio n. 23
0
 public static void StopFearing(this CharacterInstance ch)
 {
     ch.CurrentFearing = null;
 }
Esempio n. 24
0
 private static void DoClassBan(CharacterInstance ch, string[] args, int duration)
 {
 }
Esempio n. 25
0
 public static void do_mpmusic(CharacterInstance ch, string argument)
 {
     // TODO
 }
Esempio n. 26
0
 private static void DoShowBans(CharacterInstance ch, string[] args)
 {
 }
Esempio n. 27
0
 public static void do_mp_open_passage(CharacterInstance ch, string argument)
 {
     // TODO
 }
Esempio n. 28
0
 private static void ShowBans(CharacterInstance ch, BanTypes type)
 {
 }
Esempio n. 29
0
 public static void Execute(string txt, CharacterInstance ch)
 {
 }
Esempio n. 30
0
        public static void do_apply(CharacterInstance ch, string argument)
        {
            var firstArg = argument.FirstWord();

            if (CheckFunctions.CheckIfEmptyString(ch, firstArg, "Apply what?"))
            {
                return;
            }

            var secondArg = argument.SecondWord();

            if (CheckFunctions.CheckIfNotNullObject(ch, ch.CurrentFighting, "You're too busy fighting..."))
            {
                return;
            }
            if (handler.FindObject_CheckMentalState(ch))
            {
                return;
            }

            var salve = ch.GetCarriedObject(firstArg);

            if (CheckFunctions.CheckIfNullObject(ch, salve, "You do not have that."))
            {
                return;
            }

            CharacterInstance victim;
            ObjectInstance    obj = null;

            if (string.IsNullOrEmpty(secondArg))
            {
                victim = ch;
            }
            else
            {
                victim = ch.GetCharacterInRoom(secondArg);
                obj    = ch.GetObjectOnMeOrInRoom(secondArg);

                if (CheckFunctions.CheckIfTrue(ch, victim == null && obj == null, "Apply it to what or whom?"))
                {
                    return;
                }
            }

            if (CheckFunctions.CheckIfNotNullObject(ch, obj, "You can't do that... yet."))
            {
                return;
            }
            if (CheckFunctions.CheckIfNotNullObject(ch, victim.CurrentFighting,
                                                    "Wouldn't work very well while they're fighting..."))
            {
                return;
            }

            if (salve.ItemType != ItemTypes.Salve)
            {
                ApplyNonSalve(salve, ch, victim);
                return;
            }

            salve.Split();
            salve.Values.Charges -= 1;

            if (!MudProgHandler.ExecuteObjectProg(MudProgTypes.Use, ch, salve, null, null))
            {
                UseSalve(salve, ch, victim);
            }

            Macros.WAIT_STATE(ch, salve.Values.Delay);
            var retcode = ch.ObjectCastSpell((int)salve.Values.Skill1ID, (int)salve.Values.SpellLevel, victim);

            if (retcode == ReturnTypes.None)
            {
                retcode = ch.ObjectCastSpell((int)salve.Values.Skill2ID, (int)salve.Values.SpellLevel, victim);
            }
            if (retcode == ReturnTypes.CharacterDied || retcode == ReturnTypes.BothDied)
            {
                throw new CharacterDiedException("Salve {0}, Actor {1}, Victim {2}", salve.ID, ch.ID, victim.ID);
            }

            if (!handler.obj_extracted(salve) && salve.Values.Charges <= 0)
            {
                salve.Extract();
            }
        }