public override void Start() { base.Start(); m_Movable = GetComponent <MovableObject>(); m_Message = GetComponent <MmoMessageComponent>(); m_State = new PetIdleState(this); m_Character = GetComponent <CharacterObject>(); }
public override void Start() { if (aiType == null) { throw new System.Exception("aiType is null"); } mMessage = GetComponent <MmoMessageComponent>(); }
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); } }
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); } } }
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); } }
public override void Start() { base.Start(); m_MmoMessage = GetComponent <MmoMessageComponent>(); }