public override void NetReceive(BinaryReader reader) { var mymod = (HonorBoundMod)this.mod; var myplayer = (HonorBoundPlayer)TmlHelpers.SafelyGetModPlayer(Main.LocalPlayer, mymod, "HonorBoundPlayer"); if (!myplayer.HasEnteredWorld) { return; } ISet <string> honorifics = new HashSet <string>(); bool isHonorBound = reader.ReadBoolean(); bool hasNoHonor = reader.ReadBoolean(); int count = reader.ReadInt32(); for (int i = 0; i < count; i++) { honorifics.Add(reader.ReadString()); } this.Logic = new HonorBoundLogic(isHonorBound, hasNoHonor, honorifics); myplayer.OnEnterWorldIfSynced(); }
public override void Load(TagCompound tag) { if (tag.ContainsKey("is_honor_bound")) { bool isHonorBound = tag.GetBool("is_honor_bound"); bool hasNoHonor = tag.GetBool("has_no_honor"); ISet <string> honorifics = new HashSet <string>(); foreach (string honorific in HonorBoundLogic.Honorifics.Keys) { if (tag.GetBool("has_" + honorific)) { honorifics.Add(honorific); } } this.Logic = new HonorBoundLogic(isHonorBound, hasNoHonor, honorifics); } }
//////////////// static HonorBoundLogic() { try { HonorBoundLogic.DefineHonorific(new DuelistHonorificEntry()); HonorBoundLogic.DefineHonorific(new CautiousHonorificEntry()); // was 'Prudent' HonorBoundLogic.DefineHonorific(new BraveHonorificEntry()); HonorBoundLogic.DefineHonorific(new SurvivorHonorificEntry()); HonorBoundLogic.DefineHonorific(new HonorableHonorificEntry()); HonorBoundLogic.DefineHonorific(new NimbleHonorificEntry()); HonorBoundLogic.DefineHonorific(new EfficientHonorificEntry()); // was 'Frugal' HonorBoundLogic.DefineHonorific(new ResourcefulHonorificEntry()); HonorBoundLogic.DefineHonorific(new GenerousHonorificEntry()); HonorBoundLogic.DefineHonorific(new ExpedientHonorificEntry()); HonorBoundLogic.DefineHonorific(new StrategistHonorificEntry()); HonorBoundLogic.DefineHonorific(new CompletionistHonorificEntry()); HonorBoundLogic.DefineHonorific(new ProcrastinatorHonorificEntry()); } catch (Exception e) { LogHelpers.Log(e.ToString()); throw e; } }
//////////////// public void RefreshAllowedOptions( HonorBoundLogic logic ) { if( !this.HasBeenSetup ) { return; } bool hasChanged = false; foreach( var kv in logic.HonorificAllowed ) { string honorific = kv.Key; bool isAllowed = kv.Value; if( !isAllowed && this.Options.ContainsKey( honorific ) ) { var option = this.Options[honorific]; this.MainPanel.RemoveChild( option ); this.Options.Remove( honorific ); hasChanged = true; } } if( hasChanged ) { this.Backend.Recalculate(); } }
//////////////// public override void Initialize() { this.Logic = new HonorBoundLogic(false, false, new HashSet <string>()); }
public void NotAllowed(HonorBoundLogic logic) { logic.HonorificAllowed[this.Name] = false; logic.CurrentActiveHonorifics.Remove(this.Name); }
public virtual void PostLoadOff(HonorBoundLogic logic) { }
public virtual void LoadOn(HonorBoundLogic logic) { }
public virtual void BegunWorldOff(HonorBoundLogic logic) { }