// Hydra.Team.Mission delegate public delegate bool Mission(Monster target); // this is inside a foreach monster type thing, or something try { if(!monster.Immunities.Contains(Immunity.Physical)) Hydra.Attack(monster); else throw new UnableToKill(monster); } catch(UnableToKill unable) { Hydra.Team.Mission mission = delegate(Monster target) { //Travel to A3 //Go to Trav //Go to monster //Attack monster } Hydra.Team.GlobalQueue.Add(unable) }