コード例 #1
0
 protected bool TryFindVobType(Dictionary <int, Effect> effectByID, out VobType vobType)
 {
     vobType = VobType.Undefined;
     if (effectByID == null)
     {
         MakeLogWarning("Provided null-value for effectByID in TryFindVobType!");
         return(false);
     }
     return(TryFindVobDefType(effectByID, effectByID.Keys.ToList(), out vobType));
 }
コード例 #2
0
ファイル: Vob.cs プロジェクト: Arkasian/GothicUntoldChapter
        public static Vob createVob(VobType vt)
        {
            Vob v = null;

            if (vt == VobType.Npc)
            {
                v = new NPC();
            }
            else if (vt == VobType.Player)
            {
                v = new Player();
            }
            else if (vt == VobType.Item)
            {
                v = new Item();
            }
            else if (vt == VobType.Vob)
            {
                v = new Vob();
            }
            else if (vt == VobType.MobInter)
            {
                v = new MobInter();
            }
            else if (vt == VobType.MobBed)
            {
                v = new MobBed();
            }
            else if (vt == VobType.MobContainer)
            {
                v = new MobContainer();
            }
            else if (vt == VobType.MobDoor)
            {
                v = new MobDoor();
            }
            else if (vt == VobType.MobSwitch)
            {
                v = new MobSwitch();
            }


            if (v != null)
            {
                v.VobType = vt;
            }

            return(v);
        }
コード例 #3
0
        protected bool TryFindVobDefType(Dictionary <int, Effect> effectByID, List <int> effectIDs,
                                         out VobType vobType)
        {
            // checks, checks, checks
            vobType = VobType.Undefined;
            if (effectByID == null)
            {
                MakeLogWarning("Provided null-value for effectByID in TryFindVobType!");
                return(false);
            }
            if (effectByID.Count < 1)
            {
                MakeLogWarning("Provided empty effectByID in TryFindVobType!");
                return(false);
            }
            if (effectIDs == null)
            {
                MakeLogWarning("Provided null-value for effectIDs in TryFindVobType!");
                return(false);
            }
            if (effectIDs.Count < 1)
            {
                MakeLogWarning("Provided empty effectIDs in TryFindVobType!");
                return(false);
            }

            int    effectID;
            Effect effect = null;

            for (int e = 0; e < effectIDs.Count; e++)
            {
                effectID = effectIDs[e];
                if (!effectByID.TryGetValue(effectID, out effect))
                {
                    continue;
                }
                if (TryFindVobDefType(effect, out vobType))
                {
                    break;
                }
            }

            return(true);
        }
コード例 #4
0
        protected bool TryFindVobDefType(Effect effect, out VobType vobType)
        {
            vobType = VobType.Undefined;
            foreach (var change in effect.GetChanges())
            {
                if (change.GetChangeType() == ChangeType.Vob_VobType_Set)
                {
                    try
                    {
                        vobType = (VobType)change.GetParameters()[0];
                        break;
                    }
                    catch (Exception ex)
                    {
                        MakeLogError(ex);
                    }
                }
            }

            return(true);
        }