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; } } }