Esempio n. 1
0
 public override void Start()
 {
     base.Start();
     m_Movable   = GetComponent <MovableObject>();
     m_Message   = GetComponent <MmoMessageComponent>();
     m_State     = new PetIdleState(this);
     m_Character = GetComponent <CharacterObject>();
 }
Esempio n. 2
0
 public override void Start()
 {
     if (aiType == null)
     {
         throw new System.Exception("aiType is null");
     }
     mMessage = GetComponent <MmoMessageComponent>();
 }
Esempio n. 3
0
        public override bool TryCast(NebulaObject source, PlayerSkill skill, out Hashtable info)
        {
            info = new Hashtable();
            info.SetSkillUseState(Common.SkillUseState.normal);
            if (ShotToEnemyRestricted(source, skill))
            {
                info.SetSkillUseState(Common.SkillUseState.invalidTarget);
                return(false);
            }
            if (NotCheckDistance(source))
            {
                info.SetSkillUseState(Common.SkillUseState.tooFar);
                return(false);
            }

            float dmgMult = skill.GetFloatInput("dmg_mult");
            float radius  = skill.GetFloatInput("radius");

            bool mastery = RollMastery(source);

            if (mastery)
            {
                dmgMult *= 2;
                radius  *= 2;
            }

            BaseWeapon          sourceWeapon = source.Weapon();
            MmoMessageComponent message      = source.MmoMessage();
            NebulaObject        targetObject = source.Target().targetObject;
            WeaponHitInfo       hit;

            Hashtable shot = sourceWeapon.Fire(out hit, skill.data.Id, dmgMult);

            if (hit.normalOrMissed)
            {
                message.SendShot(Common.EventReceiver.OwnerAndSubscriber, shot);
                ConcurrentDictionary <string, Item> targets = GetTargets(source, targetObject, radius);
                int counter = 0;
                foreach (var pTarget in targets)
                {
                    var shot2 = sourceWeapon.Fire(out hit, skill.data.Id, dmgMult);
                    message.SendShot(Common.EventReceiver.OwnerAndSubscriber, shot2);
                    counter++;
                    if (counter == 2)
                    {
                        break;
                    }
                }
                return(true);
            }
            else
            {
                message.SendShot(Common.EventReceiver.ItemOwner, shot);
                return(false);
            }
        }
Esempio n. 4
0
        public override void Start()
        {
            base.Start();
            m_Pet     = GetComponent <PetObject>();
            m_Target  = GetComponent <PlayerTarget>();
            m_Message = GetComponent <MmoMessageComponent>();
            m_Race    = GetComponent <RaceableObject>();

            if (m_Pet)
            {
                if (m_Pet.info != null)
                {
                    m_Timer = m_Pet.info.Cooldown(nebulaObject.resource.petParameters.cooldown);
                }
            }
        }
Esempio n. 5
0
        public override void Start()
        {
            if (!m_StartCalled)
            {
                m_StartCalled   = true;
                mShip           = RequireComponent <PlayerShip>();
                mTarget         = RequireComponent <PlayerTarget>();
                mCharacter      = RequireComponent <PlayerCharacterObject>();
                mAI             = RequireComponent <AIState>();
                mRace           = RequireComponent <RaceableObject>();
                mMessage        = RequireComponent <MmoMessageComponent>();
                mDamagable      = RequireComponent <ShipBasedDamagableObject>();
                mWeapon         = RequireComponent <ShipWeapon>();
                mSkills         = RequireComponent <PlayerSkills>();
                mBonuses        = RequireComponent <PlayerBonuses>();
                mPassiveBonuses = GetComponent <PassiveBonusesComponent>();

                mCharacter.SetCharacterId((string)nebulaObject.Tag((byte)PlayerTags.CharacterId));
                mCharacter.SetCharacterName((string)nebulaObject.Tag((byte)PlayerTags.Name));
                printPropertiesTimer = printPropertiesInterval;

                if (application.serverActors.ContainsKey(nebulaObject.Id))
                {
                    MmoActor old;
                    if (application.serverActors.TryRemove(nebulaObject.Id, out old))
                    {
                        log.Info("successfully remove actor before replacing with new [red]");
                    }
                }
                if (application.serverActors.TryAdd(nebulaObject.Id, this))
                {
                    log.Info("successfully added actor to server actors [red]");
                }

                //create chest on killing when player die
                mDamagable.SetCreateChestOnKilling(true);
                mDamagable.SetIgnoreDamageInterval(30);
                mDamagable.SetIgnoreDamageAtStart(true);
            }
        }
Esempio n. 6
0
 public override void Start()
 {
     base.Start();
     m_MmoMessage = GetComponent <MmoMessageComponent>();
 }