public float EngagementRange() { AttackEntity attackEntity = GetHeldEntity() as AttackEntity; if ((bool)attackEntity) { return(attackEntity.effectiveRange); } return(sightRange); }
public float EngagementRange() { AttackEntity attackEntity = GetAttackEntity(); if ((bool)attackEntity) { return(attackEntity.effectiveRange * (attackEntity.aiOnlyInRange ? 1f : 2f) * Brain.AttackRangeMultiplier); } return(Brain.SenseRange); }
public float EngagementRange() { AttackEntity heldEntity = this.GetHeldEntity() as AttackEntity; if (Object.op_Implicit((Object)heldEntity)) { return(heldEntity.effectiveRange); } return(this.sightRange); }
public float EngagementRange() { AttackEntity heldEntity = base.GetHeldEntity() as AttackEntity; if (heldEntity) { return(heldEntity.effectiveRange); } return(this.sightRange); }
public void initialize(int index, SmashEntity smash, AttackEntity nextAttack, bool interruptable, float buildUp, float attackDuration, float cooldown, Personnage personnage) { _comboIndex = index; _smash = smash; _nextAttack = nextAttack; _interruptable = interruptable; _buildUpDuration = buildUp; _attackDuration = attackDuration; _cooldownDuration = cooldown; _personnage = personnage; }
void OnCollisionStay2D(Collision2D coll) { AttackEntity enemy = coll.gameObject.GetComponent <AttackEntity> (); if (enemy && attack > 0 && enemy.alliance != alliance && atckT >= atckI) { atckT = 0.0f; enemy.hitPoints -= attack; Debug.Log(enemy.nameOfUnity + " [" + enemy.hitPoints + "/" + enemy.hP + "] has been attacked."); } }
void SetAnimationAndTargeting() { this.new_target = false; this.entityTarget = null; this.attackTarget = false; this.asset.soundsAction("Acknowledge"); this.asset.animatorPlay("Walking"); this.asset.animatorTrigger("Walk"); this.asset.animatorSetSpeed(1); this.moving = true; }
public override bool OverrideOwnership(Item item, AttackEntity weapon) { if (item.info.shortname == "skull.human") { PlayerCorpse component = base.GetComponent <PlayerCorpse>(); if (component) { item.name = string.Concat("Skull of \"", component.playerName, "\""); return(true); } } return(false); }
public override bool OverrideOwnership(Item item, AttackEntity weapon) { if (item.info.shortname == "skull.human") { PlayerCorpse component = GetComponent <PlayerCorpse>(); if ((bool)component) { item.name = CreateSkullName(component.playerName); return(true); } } return(false); }
public override bool OverrideOwnership(Item item, AttackEntity weapon) { if (item.info.shortname == "skull.human") { PlayerCorpse component = (PlayerCorpse)((Component)this).GetComponent <PlayerCorpse>(); if (Object.op_Implicit((Object)component)) { item.name = "Skull of \"" + component.playerName + "\""; return(true); } } return(false); }
public virtual void AttemptReload() { AttackEntity attackEntity = this.GetAttackEntity(); if (attackEntity == null) { return; } if (attackEntity.CanReload()) { attackEntity.ServerReload(); } }
public virtual bool ShotTest() { AttackEntity heldEntity = base.GetHeldEntity() as AttackEntity; if (heldEntity == null) { return(false); } BaseProjectile baseProjectile = heldEntity as BaseProjectile; if (baseProjectile) { if (baseProjectile.primaryMagazine.contents <= 0) { baseProjectile.ServerReload(); NPCPlayerApex nPCPlayerApex = this as NPCPlayerApex; if (nPCPlayerApex && nPCPlayerApex.OnReload != null) { nPCPlayerApex.OnReload(); } return(false); } if (baseProjectile.NextAttackTime > Time.time) { return(false); } } if (Mathf.Approximately(heldEntity.attackLengthMin, -1f)) { heldEntity.ServerUse(this.damageScale); this.lastGunShotTime = Time.time; return(true); } NPCPlayer nPCPlayer = this; if (base.IsInvoking(new Action(nPCPlayer.TriggerDown))) { return(true); } if (Time.time < this.nextTriggerTime) { return(true); } NPCPlayer nPCPlayer1 = this; base.InvokeRepeating(new Action(nPCPlayer1.TriggerDown), 0f, 0.01f); this.triggerEndTime = Time.time + UnityEngine.Random.Range(heldEntity.attackLengthMin, heldEntity.attackLengthMax); this.TriggerDown(); return(true); }
// Use this for initialization void Start() { dead = false; new_target = false; moving = false; entityTarget = null; attackTarget = false; asset.animatorFloat("Direction", -1); if (orc) { ; ManagerOrcs.instance.Add(this); } }
void OnCollisionEnter2D(Collision2D coll) { AttackEntity enemy = coll.gameObject.GetComponent <AttackEntity> (); HumanController human = GetComponent <HumanController> (); OrcController orc = GetComponent <OrcController> (); if (human && enemy && enemy.alliance != alliance) { human.entitySelect = enemy; } if (orc && enemy && enemy.alliance != alliance) { orc.entityTarget = enemy; } }
void Start() { this.moving = false; this.asset.animatorSetSpeed(0); this.asset.animatorFloat("Direction", -1); this.new_target = false; this.entityIsTarget = false; this.entitySelect = null; this.entityIsTarget = false; if (human) { ManagerHumans.instance.Add(this); ManagerOrcs.instance.AddToFightList(this); } }
public void Tick(IHTNAgent npc, float deltaTime, float time) { ScientistJunkpileContext npcContext = npc.AiDomain.NpcContext as ScientistJunkpileContext; if (npcContext == null) { return; } HTNPlayer hTNPlayer = npc as HTNPlayer; if (hTNPlayer == null) { return; } FireTactic fireTactic = FireTactic.Single; AttackEntity heldEntity = hTNPlayer.GetHeldEntity() as AttackEntity; if (heldEntity) { BaseProjectile baseProjectile = heldEntity as BaseProjectile; float sqrDistance = Single.MaxValue; if (npcContext.PrimaryEnemyPlayerInLineOfSight.Player != null) { sqrDistance = npcContext.PrimaryEnemyPlayerInLineOfSight.SqrDistance; if (Mathf.Approximately(sqrDistance, 0f)) { sqrDistance = Single.MaxValue; } } else if (npcContext.Memory.PrimaryKnownAnimal.Animal != null) { sqrDistance = npcContext.Memory.PrimaryKnownAnimal.SqrDistance; if (Mathf.Approximately(sqrDistance, 0f)) { sqrDistance = Single.MaxValue; } } if (heldEntity.attackLengthMin < 0f || sqrDistance > npcContext.Body.AiDefinition.Engagement.SqrCloseRangeFirearm(baseProjectile)) { fireTactic = (heldEntity.attackLengthMin <0f || sqrDistance> npcContext.Body.AiDefinition.Engagement.SqrMediumRangeFirearm(baseProjectile) ? FireTactic.Single : FireTactic.Burst); } else { fireTactic = FireTactic.FullAuto; } } npcContext.SetFact(Facts.FireTactic, fireTactic, true, true, true); }
public void Tick(IHTNAgent npc, float deltaTime, float time) { ScientistContext npcContext = npc.AiDomain.NpcContext as ScientistContext; if (npcContext == null) { return; } HTNPlayer htnPlayer = npc as HTNPlayer; if (Object.op_Equality((Object)htnPlayer, (Object)null)) { return; } AttackEntity heldEntity = htnPlayer.GetHeldEntity() as AttackEntity; if (Object.op_Implicit((Object)heldEntity)) { BaseProjectile baseProjectile = heldEntity as BaseProjectile; if (Object.op_Inequality((Object)baseProjectile, (Object)null)) { float num = (float)baseProjectile.primaryMagazine.contents / (float)baseProjectile.primaryMagazine.capacity; if ((double)num > 0.899999976158142) { npcContext.SetFact(Rust.Ai.HTN.Scientist.Facts.AmmoState, AmmoState.FullClip, true, true, true); return; } if ((double)num > 0.600000023841858) { npcContext.SetFact(Rust.Ai.HTN.Scientist.Facts.AmmoState, AmmoState.HighClip, true, true, true); return; } if ((double)num > 0.170000001788139) { npcContext.SetFact(Rust.Ai.HTN.Scientist.Facts.AmmoState, AmmoState.MediumClip, true, true, true); return; } if ((double)num > 0.0) { npcContext.SetFact(Rust.Ai.HTN.Scientist.Facts.AmmoState, AmmoState.LowAmmo, true, true, true); return; } npcContext.SetFact(Rust.Ai.HTN.Scientist.Facts.AmmoState, AmmoState.EmptyClip, true, true, true); return; } } npcContext.SetFact(Rust.Ai.HTN.Scientist.Facts.AmmoState, AmmoState.DontRequireAmmo, true, true, true); }
public void Tick(IHTNAgent npc, float deltaTime, float time) { ScientistContext npcContext = npc.AiDomain.NpcContext as ScientistContext; if (npcContext == null) { return; } HTNPlayer hTNPlayer = npc as HTNPlayer; if (hTNPlayer == null) { return; } AttackEntity heldEntity = hTNPlayer.GetHeldEntity() as AttackEntity; if (heldEntity) { BaseProjectile baseProjectile = heldEntity as BaseProjectile; if (baseProjectile != null) { float single = (float)baseProjectile.primaryMagazine.contents / (float)baseProjectile.primaryMagazine.capacity; if (single > 0.9f) { npcContext.SetFact(Facts.AmmoState, AmmoState.FullClip, true, true, true); return; } if (single > 0.6f) { npcContext.SetFact(Facts.AmmoState, AmmoState.HighClip, true, true, true); return; } if (single > 0.17f) { npcContext.SetFact(Facts.AmmoState, AmmoState.MediumClip, true, true, true); return; } if (single > 0f) { npcContext.SetFact(Facts.AmmoState, AmmoState.LowAmmo, true, true, true); return; } npcContext.SetFact(Facts.AmmoState, AmmoState.EmptyClip, true, true, true); return; } } npcContext.SetFact(Facts.AmmoState, AmmoState.DontRequireAmmo, true, true, true); }
public virtual void TriggerDown() { AttackEntity heldEntity = base.GetHeldEntity() as AttackEntity; if (heldEntity != null) { heldEntity.ServerUse(this.damageScale); } this.lastGunShotTime = Time.time; if (Time.time > this.triggerEndTime) { NPCPlayer nPCPlayer = this; base.CancelInvoke(new Action(nPCPlayer.TriggerDown)); this.nextTriggerTime = Time.time + (heldEntity != null ? heldEntity.attackSpacing : 1f); } }
public virtual void TriggerDown() { AttackEntity heldEntity = this.GetHeldEntity() as AttackEntity; if (Object.op_Inequality((Object)heldEntity, (Object)null)) { heldEntity.ServerUse(this.damageScale); } this.lastGunShotTime = Time.get_time(); if ((double)Time.get_time() <= (double)this.triggerEndTime) { return; } this.CancelInvoke(new Action(this.TriggerDown)); this.nextTriggerTime = Time.get_time() + (Object.op_Inequality((Object)heldEntity, (Object)null) ? heldEntity.attackSpacing : 1f); }
public BaseProjectile GetGun() { AttackEntity heldEntity = this.GetHeldEntity() as AttackEntity; if (Object.op_Equality((Object)heldEntity, (Object)null)) { return((BaseProjectile)null); } BaseProjectile baseProjectile = heldEntity as BaseProjectile; if (Object.op_Implicit((Object)baseProjectile)) { return(baseProjectile); } return((BaseProjectile)null); }
public virtual void SetAimDirection(Vector3 newAim) { if (newAim == Vector3.zero) { return; } AttackEntity attackEntity = this.GetAttackEntity(); if (attackEntity) { newAim = attackEntity.ModifyAIAim(newAim, 1f); } this.eyes.rotation = Quaternion.LookRotation(newAim, Vector3.up); this.viewAngles = this.eyes.rotation.eulerAngles; this.ServerRotation = this.eyes.rotation; }
public BaseProjectile GetGun() { AttackEntity heldEntity = base.GetHeldEntity() as AttackEntity; if (heldEntity == null) { return(null); } BaseProjectile baseProjectile = heldEntity as BaseProjectile; if (baseProjectile) { return(baseProjectile); } return(null); }
public bool MeleeAttack() { AttackEntity heldEntity = this.GetHeldEntity() as AttackEntity; if (Object.op_Equality((Object)heldEntity, (Object)null)) { return(false); } BaseMelee baseMelee = heldEntity as BaseMelee; if (Object.op_Equality((Object)baseMelee, (Object)null)) { return(false); } baseMelee.ServerUse(this.damageScale); return(true); }
private void GiveResourceFromItem( BaseEntity entity, ItemAmount itemAmt, float gatherDamage, float destroyFraction, AttackEntity attackWeapon) { if ((double)itemAmt.amount == 0.0) { return; } float num1 = Mathf.Min(gatherDamage, this.baseEntity.Health()) / this.baseEntity.MaxHealth(); float num2 = itemAmt.startAmount / this.startingItemCounts; float num3 = Mathf.Clamp(itemAmt.startAmount * num1 / num2, 0.0f, itemAmt.amount); float num4 = (float)((double)num3 * (double)destroyFraction * 2.0); if ((double)itemAmt.amount <= (double)num3 + (double)num4) { float num5 = (num3 + num4) / itemAmt.amount; num3 /= num5; num4 /= num5; } itemAmt.amount -= Mathf.Floor(num3); itemAmt.amount -= Mathf.Floor(num4); if ((double)num3 < 1.0) { num3 = (double)Random.Range(0.0f, 1f) <= (double)num3 ? 1f : 0.0f; itemAmt.amount = 0.0f; } if ((double)itemAmt.amount < 0.0) { itemAmt.amount = 0.0f; } if ((double)num3 < 1.0) { return; } Item byItemId = ItemManager.CreateByItemID(itemAmt.itemid, Mathf.FloorToInt(num3), 0UL); if (byItemId == null || Interface.CallHook("OnDispenserGather", (object)this, (object)entity, (object)byItemId) != null) { return; } this.OverrideOwnership(byItemId, attackWeapon); entity.GiveItem(byItemId, BaseEntity.GiveItemReason.ResourceHarvested); }
public bool MeleeAttack() { AttackEntity heldEntity = base.GetHeldEntity() as AttackEntity; if (heldEntity == null) { return(false); } BaseMelee baseMelee = heldEntity as BaseMelee; if (baseMelee == null) { return(false); } baseMelee.ServerUse(this.damageScale); return(true); }
public override void DoExecute(BaseContext c) { BasePlayer aIAgent = c.AIAgent as BasePlayer; if (aIAgent != null) { AttackEntity heldEntity = aIAgent.GetHeldEntity() as AttackEntity; if (heldEntity != null) { BaseProjectile baseProjectile = heldEntity as BaseProjectile; if (baseProjectile) { baseProjectile.ServerReload(); } } } }
public virtual void SetAimDirection(Vector3 newAim) { if (Vector3.op_Equality(newAim, Vector3.get_zero())) { return; } AttackEntity attackEntity = this.GetAttackEntity(); if (Object.op_Implicit((Object)attackEntity)) { newAim = attackEntity.ModifyAIAim(newAim, 1f); } this.eyes.rotation = Quaternion.LookRotation(newAim, Vector3.get_up()); Quaternion rotation = this.eyes.rotation; this.viewAngles = ((Quaternion) ref rotation).get_eulerAngles(); this.ServerRotation = this.eyes.rotation; }
public virtual void EquipWeapon() { Item slot = this.inventory.containerBelt.GetSlot(0); if (slot != null) { base.UpdateActiveItem(this.inventory.containerBelt.GetSlot(0).uid); BaseEntity heldEntity = slot.GetHeldEntity(); if (heldEntity != null) { AttackEntity component = heldEntity.GetComponent <AttackEntity>(); if (component != null) { component.TopUpAmmo(); } } } }
public void Log(AttackEntity weapon, Projectile projectile, string description = null) { Event val = default(Event); val.time = UnityEngine.Time.realtimeSinceStartup; val.attacker_id = (((bool)player && player.net != null) ? player.net.ID : 0u); val.target_id = 0u; val.attacker = "you"; val.target = "N/A"; val.weapon = (weapon ? weapon.name : "N/A"); val.ammo = (projectile ? projectile.name : "N/A"); val.bone = "N/A"; val.area = (HitArea)0; val.distance = 0f; val.health_old = 0f; val.health_new = 0f; val.info = ((description != null) ? description : string.Empty); Log(val); }