public AbstractEntity AddEntityToUnit(AbstractEntity e, AbstractEntity unit) { CanCarryComponent c = (CanCarryComponent)unit.GetComponent(nameof(CanCarryComponent)); e.AddComponent(new PositionComponent(e, this.map_data, 0, 0, false, false)); c.AddItem(e); return(e); }
protected override List <string> GetStatsFor_Sub(AbstractEntity e) { var str = new List <string>(); str.Add($"Stats for {e.name}"); // todo - stats CanCarryComponent ccc = (CanCarryComponent)e.GetComponent(nameof(CanCarryComponent)); foreach (var item in ccc.GetItems()) { str.Add($"{item.name}"); } return(str); }
public void PickupItem(AbstractEntity unit, AbstractEntity item, List <AbstractEntity> mapSquare) { MobDataComponent mdc = (MobDataComponent)unit.GetComponent(nameof(MobDataComponent)); if (mdc == null || mdc.actionPoints > 0) { mdc.actionPoints -= 40; CanCarryComponent ccc = (CanCarryComponent)unit.GetComponent(nameof(CanCarryComponent)); CarryableComponent cc = (CarryableComponent)item.GetComponent(nameof(CarryableComponent)); // todo - check weight etc... ccc.AddItem(item); cc.carrier = unit; mapSquare.Remove(item); } }
private void ListItemsInInv() { this.menuItemList.Clear(); int idx = 1; CanCarryComponent ccc = (CanCarryComponent)this.currentUnit.GetComponent(nameof(CanCarryComponent)); foreach (var e in ccc.GetItems()) { CarryableComponent cc = (CarryableComponent)e.GetComponent(nameof(CarryableComponent)); if (cc != null) { this.menuItemList.Add(idx, e); idx++; } } }
public void EntityShootingAtEntity(AbstractEntity shooter, Point shooterPos, AbstractEntity target, Point targetPos) { CanCarryComponent ccc = (CanCarryComponent)shooter.GetComponent(nameof(CanCarryComponent)); if (ccc != null && ccc.CurrentItem != null) { ItemCanShootComponent icsc = (ItemCanShootComponent)ccc.CurrentItem.GetComponent(nameof(ItemCanShootComponent)); if (icsc != null) { MobDataComponent us = (MobDataComponent)shooter.GetComponent(nameof(MobDataComponent)); if (us.actionPoints > 0) { this.EntityShotByEntity(shooter, shooterPos.X, shooterPos.Y, target, targetPos.X, targetPos.Y); us.actionPoints -= 50; } } } }
public void ThrowItem(AbstractEntity thrower, int destX, int destY) { MobDataComponent mdc = (MobDataComponent)thrower.GetComponent(nameof(MobDataComponent)); if (mdc == null || mdc.actionPoints > 0) { mdc.actionPoints -= 50; CanCarryComponent ccc = (CanCarryComponent)thrower.GetComponent(nameof(CanCarryComponent)); if (ccc.CurrentItem != null) { PositionComponent pos = (PositionComponent)ccc.CurrentItem.GetComponent(nameof(PositionComponent)); this.mapData.map[pos.x, pos.y].Add(ccc.CurrentItem); this.gameLog.Add($"{ccc.CurrentItem.name} thrown."); ccc.RemoveItem(ccc.CurrentItem); } } }
public void DropItem(AbstractEntity unit, AbstractEntity item, List <AbstractEntity> mapSquare) { MobDataComponent mdc = (MobDataComponent)unit.GetComponent(nameof(MobDataComponent)); if (mdc == null || mdc.actionPoints > 0) { mdc.actionPoints -= 20; CanCarryComponent ccc = (CanCarryComponent)unit.GetComponent(nameof(CanCarryComponent)); PositionComponent unitpos = (PositionComponent)item.GetComponent(nameof(PositionComponent)); PositionComponent itempos = (PositionComponent)item.GetComponent(nameof(PositionComponent)); CarryableComponent cc = (CarryableComponent)item.GetComponent(nameof(CarryableComponent)); if (ccc.GetItems().Contains(item)) { ccc.RemoveItem(item); cc.carrier = null; mapSquare.Add(item); itempos.x = unitpos.x; itempos.y = unitpos.y; } } }