public bool ValidateMob(MobView mob) { if (mob.IsDead()) { return(false); } return(true); }
public bool ValidateMob(MobView mob) { if (mob.IsDead()) { return(false); } var mobAttackTarget = mob.GetAttackTarget(); if (mobAttackTarget != null && mobAttackTarget != _localPlayerCharacterView) { return(false); } if (_blacklist.ContainsKey(mob)) { return(false); } return(true); }
public static ResourceType?GetResourceType(this MobView instance) { //First we try to get a known value for the MobType var resourceMobType = instance.MobType(); if (_knownResourceTypes.ContainsKey(resourceMobType)) { return(_knownResourceTypes[resourceMobType]); } //Second we try to get a known value for the MobName var resourceMobName = instance.name; if (_knownResourceTypes.ContainsKey(resourceMobName)) { return(_knownResourceTypes[resourceMobName]); } //Third we try to get a value for the MobType (we do that first, cause in more cases this is filled) var resourceTypeByMobType = GetResouceTypeFromString(resourceMobType, 2); if (resourceTypeByMobType.HasValue) { _knownResourceTypes.Add(resourceMobType, resourceTypeByMobType.Value); return(resourceTypeByMobType.Value); } //Fourth we try to get a value for the MobName var resourceTypeByMobName = GetResouceTypeFromString(resourceMobName, 1); if (resourceTypeByMobName.HasValue) { _knownResourceTypes.Add(resourceMobName, resourceTypeByMobName.Value); return(resourceTypeByMobName.Value); } //Well, no luck. Next time :) return(null); }
void Awake() { #if UNITY_EDITOR Log.level = Log.LogLevel.DEBUG; #else Log.level = Log.LogLevel.INFO; #endif Debug.Log("--------------- Awake ------------------------"); Transform facadeContainer = this.transform.Find("facades"); facades = new UIFacade[facadeContainer.childCount]; for (int i = 0; i < facadeContainer.childCount; i++) { Transform child = facadeContainer.GetChild(i); facades[i] = child.GetComponent <UIFacade>(); facades[i].Register(); } initialize(); playerModel_ = new PlayerModel(); PlayerView playerView = new PlayerView(); PlayerController playerController = new PlayerController(); framework.modelCenter.Register(PlayerModel.NAME, playerModel_); framework.viewCenter.Register(PlayerView.NAME, playerView); framework.controllerCenter.Register(PlayerController.NAME, playerController); mobModel_ = new MobModel(); MobView mobView = new MobView(); MobController mobController = new MobController(); framework.modelCenter.Register(MobModel.NAME, mobModel_); framework.viewCenter.Register(MobView.NAME, mobView); framework.controllerCenter.Register(MobController.NAME, mobController); inputController_ = new InputController(); framework.controllerCenter.Register(InputController.NAME, inputController_); }
public static int GetRareState(this MobView instance) { return(instance.Mob.td()); }
public static int GetTier(this MobView instance) { return(instance.Mob.ta().dg()); }
public void HarvestMob(MobView mob) { Vector3 targetCenter = _currentTarget.transform.position; Vector3 playerCenter = _localPlayerCharacterView.transform.position; //Skip if target is inside a kepper pack if (_skipKeeperPacks && (ContainKeepers(_currentTarget.transform.position))) { Core.Log("[Blacklisted - Inside Kepper Pack Range]"); Blacklist(mob, TimeSpan.FromMinutes(5)); _state.Fire(Trigger.DepletedResource); return; } float centerDistance = (targetCenter - playerCenter).magnitude; var weaponItem = _localPlayerCharacterView.LocalPlayerCharacter.th().o(); var isMeleeWeapon = weaponItem == null || weaponItem.bu() == Albion.Common.GameData.AttackType.Melee; var attackRange = _localPlayerCharacterView.LocalPlayerCharacter.jz() + mob.Mob.x1().f9(); var minimumAttackRange = isMeleeWeapon ? MELEE_ATTACK_RANGE : attackRange; var isInLoS = _localPlayerCharacterView.IsInLineOfSight(mob); if (HandlePathing(ref _harvestPathingRequest, () => centerDistance <= minimumAttackRange && isInLoS)) { return; } if (centerDistance >= minimumAttackRange || !isInLoS) { if (_localPlayerCharacterView.TryFindPath(new ClusterPathfinder(), targetCenter, IsBlockedGathering, out List <Vector3> pathing)) { Core.Log("Path found, begin travel to Mob"); Core.lineRenderer.positionCount = pathing.Count; Core.lineRenderer.SetPositions(pathing.ToArray()); _harvestPathingRequest = new ClusterPathingRequest(_localPlayerCharacterView, _currentTarget, pathing); } else { Core.Log("Path not found"); _state.Fire(Trigger.DepletedResource); } return; } if (_localPlayerCharacterView.IsAttacking()) { Core.Log("Currently Attacking Mob. Wait until done."); return; } if (mob.IsDead() && mob.DeadAnimationFinished) { Core.Log("[Mob Dead]"); _state.Fire(Trigger.DepletedResource); return; } Core.Log("[Attacking]"); if (_localPlayerCharacterView.IsMounted) { _localPlayerCharacterView.MountOrDismount(); } _localPlayerCharacterView.SetSelectedObject(mob); _localPlayerCharacterView.AttackSelectedObject(); }