public override bool AttachTo(Character target) { if (!base.AttachTo(target)) { return(false); } target.Paralysed = true; Buff.Detach <Burning>(target); var hero = target as Hero; if (hero == null) { return(true); } var item = hero.Belongings.RandomUnequipped(); if (!(item is MysteryMeat)) { return(true); } item.Detach(hero.Belongings.Backpack); var carpaccio = new FrozenCarpaccio(); if (!carpaccio.Collect(hero.Belongings.Backpack)) { Dungeon.Level.Drop(carpaccio, hero.pos).Sprite.Drop(); } return(true); }
public virtual void Freeze() { if (HeapType != Type.Heap) { return; } var frozen = false; foreach (var item in Items.OfType <MysteryMeat>()) { Replace(item, FrozenCarpaccio.Cook(item)); frozen = true; } if (!frozen) { return; } if (IsEmpty) { Destroy(); } else if (Sprite != null) { Sprite.View(Image(), Glowing()); } }