public static DesireCollection Build() { DesireCollection collection = new DesireCollection(); /* Desordenamos los deseos, pero mantenemos el Brass Ring en primer lugar, * ya que es el item que nos da Gareth al principio de la Quest, y el Iron * Chain en último lugar, ya que es el que debemos devolverle al final. */ DesireDefinition[] desires = Utility.Shuffle(BaseErrand.Desires, 1, BaseErrand.Desires.Length - 2); /* Desordenamos los NPCs, pero mantenemos a Sean en último lugar, ya que él * da siempre el último item que debemos devolverle a Gareth. */ Type[] errandTypes = Utility.Shuffle(BaseErrand.ErrandTypes, 0, BaseErrand.ErrandTypes.Length - 1); for (int i = 0; i < errandTypes.Length; i++) { Type errandType = errandTypes[i]; DesireDefinition desire = desires[i]; DesireDefinition gift = desires[i + 1]; bool givesDesireInfo = Utility.RandomBool(); collection.m_Desires.Add(errandType, new DesireInfo(desire, gift, givesDesireInfo)); } /* Sean siempre da información sobre lo que quiere, no sobre lo que da, * ya que siempre da el Iron Chain. */ collection.m_Desires[typeof(Sean)].GivesDesireInfo = true; return(collection); }
public DesireInfo(GenericReader reader) { m_Desire = DesireDefinition.Deserialize(BaseErrand.Desires, reader); m_Gift = DesireDefinition.Deserialize(BaseErrand.Desires, reader); m_GivesDesireInfo = reader.ReadBool(); m_GiftGiven = reader.ReadBool(); }
public DesireInfo(DesireDefinition desire, DesireDefinition gift, bool givesDesireInfo) { m_Desire = desire; m_Gift = gift; m_GivesDesireInfo = givesDesireInfo; }
public DesireInfo( GenericReader reader ) { m_Desire = DesireDefinition.Deserialize( BaseErrand.Desires, reader ); m_Gift = DesireDefinition.Deserialize( BaseErrand.Desires, reader ); m_GivesDesireInfo = reader.ReadBool(); m_GiftGiven = reader.ReadBool(); }
public DesireInfo( DesireDefinition desire, DesireDefinition gift, bool givesDesireInfo ) { m_Desire = desire; m_Gift = gift; m_GivesDesireInfo = givesDesireInfo; }
public void Serialize( DesireDefinition[] referenceTable, GenericWriter writer ) { for ( int i = 0; i < referenceTable.Length; i++ ) { if ( this == referenceTable[i] ) { writer.WriteEncodedInt( 0x01 ); writer.WriteEncodedInt( i ); return; } } writer.WriteEncodedInt( 0x00 ); }
public static DesireDefinition Deserialize( DesireDefinition[] referenceTable, GenericReader reader ) { int encoding = reader.ReadEncodedInt(); if ( encoding == 0x01 ) return referenceTable[reader.ReadEncodedInt()]; return null; }