public void DetermineState(AbstractPlayer player) { if (!fam.CanShoot()) { SetState("no_uses"); return; } if (player.GetActiveFamiliar().GetComponent <BaseFamiliar>() == fam) { // we are active if (fam.requiresTarget && player.focusedThing == null) { SetState("no_target"); return; } } SetState("default"); }