public bool CanTrigger() { if (!repeatable && triggered) { return(false); } if (onNumExps && numExpsInSociety != society.GetNumOfExps()) { return(false); } if (exp != null) { if (!EqualIfNotNull(expState, exp.GetState(), checkExp)) { return(false); } //if (!EqualIfNotNull (expAnimState, ... } if (!EqualIfNotNull(socState, society.GetState(), checkSoc)) { return(false); } print(onAttack + " " + (!society.ExpsAreAttackingEachOther())); if (onAttack && !society.ExpsAreAttackingEachOther()) { return(false); } if (onFactoryExp && onFilledGenes && !society.GetExpWithId(-1).dna.HasFilledGenes()) { return(false); } if (onSameGenes && !society.GetExpWithId(-1).dna.SameTypeOfExp(expGeneMap)) { return(false); } if (onSocietyCompletion && !society.GetState().Equals(Society.SocState.Finished)) { return(false); } triggered = true; return(true); }