private void OnItemDestroyed(Static.Item staticItem) { var itemIndex = Targets.FindIndex(i => i.StaticItem.Id == staticItem.Id); if (itemIndex < 0) { return; } var item = Targets[itemIndex]; if (item.Amount <= 0) { return; } item.Amount--; Targets[itemIndex] = item; OnTargetsChange?.Invoke(Targets); var allItemsDestroyed = Targets.All(i => i.Amount <= 0); if (!allItemsDestroyed) { return; } Clear(); OnWin?.Invoke(); }
public void AddFocusTarget(Target focusTarget) { if (FindMember(focusTarget.target) > 0) { RemoveFocusTarget(focusTarget.target); } AddMember(focusTarget.target, focusTarget.weight, focusTarget.radius); OnTargetsChange?.Invoke(this); }
public void AddFocusTargets(List <Target> focusTargets) { focusTargets?.ForEach(t => { if (FindMember(t.target) > 0) { RemoveFocusTarget(t.target); } AddMember(t.target, t.weight, t.radius); }); OnTargetsChange?.Invoke(this); }
public void RemoveAllFocusTargets() { m_Targets = new Target[0]; OnTargetsChange?.Invoke(this); }
public void RemoveFocusTargets(List <Transform> focusTargets) { focusTargets?.ForEach(RemoveMember); OnTargetsChange?.Invoke(this); }
public void RemoveFocusTarget(Transform focusTargetTransform) { RemoveMember(focusTargetTransform); OnTargetsChange?.Invoke(this); }
public void RemoveFocusTarget(Target focusTarget) { RemoveMember(focusTarget.target); OnTargetsChange?.Invoke(this); }