private void Kill(Core.Unit unit) { DebugLog.Fine(this, $"{_prefix} Killing Unit {{{unit.ID}}}"); if (onlineUnits.TryGetValue(unit.ID, out Unit unitView)) { Core.Unit u = unitView.unit; if (!u.IsDead() | !unit.IsDead()) { DebugLog.Warning(this, $"{_prefix} Unit {{{unit.ID}}} is not dead, but called kill."); } OnUnitViewRemoveEvent.Invoke(unitView); unitView.OnUnitDeathEvent.Invoke(unitView.gameObject); onlineUnits.Remove(unit.ID); Destroy(unitView.gameObject); DebugLog.Finest(this, $"{_prefix} Killed Unit {unitView.ToString()}"); return; } else { DebugLog.Severe(this, $"{_prefix} Could not find unit {{{unit.ID}}}!!"); return; } }
public void AddCoreUnit(Core.Unit coreUnit, Vector3 startPosition) { Unit mapUnit = new Unit(0, coreUnit, startPosition, Quaternion.identity); Units.Add(mapUnit); UI.MapUnitUI mapUnitUI = resourceLoader.GetGameObjectClone(mapUnit); mapUnitUI.SendMessage("SetMapUnit", mapUnit, SendMessageOptions.RequireReceiver); mapUnitUI.SendMessage("SetPlayerControl", true, SendMessageOptions.RequireReceiver); // for test }
public Unit(int ID, Core.Unit coreUnit, Vector3 position, Quaternion rotation) { this.ID = ID; this.coreUnit = coreUnit; this.CoreID = coreUnit.ID; this.Position = position; this.Rotation = rotation; this.MoveTargetPosition = position; }
private GameObject Spawn(Core.Unit unit) { DebugLog.Fine(this, $"{_prefix} Spawning Unit {{{unit.ID}}}"); GameObject unitObj = Spawn(balloonUnit, unit.ID, unit.X, unit.Y); Unit unitView = unitObj.GetComponent <Unit>(); unitView.unit = unit; onlineUnits.Add(unit.ID, unitView); OnUnitViewAddEvent.Invoke(unitView); DebugLog.Finest(this, $"{_prefix} Spawned Unit: {unitView.ToString()}"); return(unitObj); }
private void Awake() { unit = GetComponent <Core.Unit>(); pointsUI = GetComponentInChildren <PointsUI>(); HealthPoints = new ReactiveProperty <int>(100); MaxHealthPoints = new ReactiveProperty <int>(HealthPoints.Value); if (gameObject.CompareTag("Player")) { signalBus.Subscribe <LevelUp>(() => { UpdateMaxHealthPoints(config.HealthGetForLevel); HealthPoints.Value = MaxHealthPoints.Value; }); } }
// Start is called before the first frame update void Start() { //CurrentState = GameState.Menu; //commandQueue = new Queue<Command>(); CurrentState = GameState.Game; Core.Unit coreUnit = new Core.Unit { Type = UnitType.Player }; map = new Map.FreeMap(); map.AddCoreUnit(coreUnit, Vector3.right); // mapUnit = new Map.Unit(0, coreUnit, Vector3.right, Quaternion.identity); // mapUnitUI = resourceLoader.GetGameObjectClone(mapUnit); // mapUnitUI.SendMessage("SetMapUnit", mapUnit, SendMessageOptions.RequireReceiver); // mapUnitUI.SendMessage("SetPlayerControl", true, SendMessageOptions.RequireReceiver); }
private void Damage(Core.Unit unit, int amount) { DebugLog.Fine(this, $"{_prefix} Damaging Unit {{{unit.ID}}}"); if (onlineUnits.TryGetValue(unit.ID, out Unit unitView)) { Core.Unit u = unitView.unit; u.hp -= amount; OnUnitViewDamageEvent.Invoke(unitView); } else { DebugLog.Severe(this, $"{_prefix} Could not find unit [{unit.ID}]!!"); return; } }
public void DamageUnit(Core.Unit unit, int damage) { // DataSender.SendUnitDamaged(unit, damage); }
public void AddUnit(Core.Unit unit) { Debug.Log($"Spawned: {unit.ID}"); units.Add(unit.ID, unit); OnUnitAdd.Invoke(unit); }