Exemplo n.º 1
0
        public static TrinityActor CreateActor(ActorSeed seed)
        {
            if (seed == null)
            {
                return(null);
            }

            switch (seed.ActorType)
            {
            case ActorType.Item:
                return(CreateActor <TrinityItem>(seed));

            case ActorType.Player:
                return(CreateActor <TrinityPlayer>(seed));
            }

            return(CreateActor <TrinityActor>(seed));
        }
Exemplo n.º 2
0
        public static ActorSeed GetActorSeed(DiaObject rActor)
        {
            if (rActor == null || !rActor.IsValid)
            {
                return(null);
            }

            var commonData = rActor.CommonData;
            var isAcdBased = commonData != null;

            if (isAcdBased && (!commonData.IsValid || commonData.IsDisposed))
            {
                return(null);
            }

            var actorInfo = rActor.ActorInfo;

            if (actorInfo == null || !actorInfo.IsValid)
            {
                return(null);
            }

            var seed = new ActorSeed();

            seed.RActor               = rActor;
            seed.RActorId             = rActor.RActorId;
            seed.ActorSnoId           = rActor.ActorSnoId;
            seed.ActorType            = actorInfo.Type;
            seed.AcdId                = rActor.ACDId;
            seed.AnnId                = isAcdBased ? rActor.CommonData.AnnId : -1;
            seed.ActorInfo            = actorInfo;
            seed.IsAcdBased           = isAcdBased;
            seed.IsRActorBased        = true;
            seed.InternalName         = rActor.Name;
            seed.Position             = rActor.Position;
            seed.CommonData           = commonData;
            seed.FastAttributeGroupId = isAcdBased ? commonData.FastAttribGroupId : -1;
            seed.MonsterInfo          = commonData?.MonsterInfo;
            seed.MonsterSnoId         = actorInfo.MonsterSnoId;
            return(seed);
        }
Exemplo n.º 3
0
        public static ActorSeed GetActorSeed(ACD commonData)
        {
            if (commonData == null || !commonData.IsValid)
            {
                return(null);
            }

            var seed = new ActorSeed();

            seed.IsAcdBased           = true;
            seed.IsRActorBased        = false;
            seed.ActorSnoId           = commonData.ActorSnoId;
            seed.CommonData           = commonData;
            seed.AcdId                = commonData.ACDId;
            seed.AnnId                = commonData.AnnId;
            seed.ActorType            = commonData.ActorType;
            seed.InternalName         = commonData.Name;
            seed.Position             = commonData.Position;
            seed.FastAttributeGroupId = commonData.FastAttribGroupId;
            return(seed);
        }
Exemplo n.º 4
0
        public static T CreateActor <T>(ActorSeed actorSeed) where T : ActorBase, new()
        {
            var actor = new T
            {
                RActor               = actorSeed.RActor,
                RActorId             = actorSeed.RActorId,
                AcdId                = actorSeed.AcdId,
                AnnId                = actorSeed.AnnId,
                ActorSnoId           = actorSeed.ActorSnoId,
                ActorInfo            = actorSeed.ActorInfo,
                ActorType            = actorSeed.ActorType,
                InternalName         = actorSeed.InternalName,
                Position             = actorSeed.Position,
                CommonData           = actorSeed.CommonData,
                IsAcdBased           = actorSeed.IsAcdBased,
                IsRActorBased        = actorSeed.IsRActorBased,
                FastAttributeGroupId = actorSeed.FastAttributeGroupId,
                MonsterInfo          = actorSeed.MonsterInfo,
                MonsterSnoId         = actorSeed.MonsterSnoId
            };

            actor.OnCreated();
            return(actor);
        }