Skip to content

Model Representation

ldstrumpet edited this page Feb 13, 2015 · 14 revisions

Model Representation of Game Objects. ###Interfaces

interface IUnity
{
    //If you need the Model to acknowledge that Unity even exists. put it here.
    void OnUpdate();
    void OnTime();
}
public interface IDamageAffecting
{
    int OutgoingDamage();
    int DamageResistance();
}

###Model Objects

public class Person : IUnity
{
    public Person()
    public AddItem()
    public RemoveItem()
    public DealDamage()
    public ReceiveDamage()
}
public class NPC : Person
{
    ...
    public string Speak();
    public List<String> getDialogue();
    public void setDialogue(List<string> phrases)
}
public class Player : Person
{
    ...
}
public class StorageContainer
{
    public int MaxCapacity;
    public int Capacity;
    public List<Item> Items;
    public bool AddItem(Item item)
    public bool RemoveItem(Item item)
    public virtual string Info()
}
public class Inventory : StorageContainer
{
    ...
    public List<Item> Equipment;
    public bool EquipItem(Item item)
    public bool UnEquipItem(Item item)
    public int OutgoingDamage()
    public int DamageResistance()
    public override string Info()
}
public class Item : IDamageAffecting
{
    public Guid ID;
    public int Girth;   
    public string Label;
    public int Durability;
    public int Equip;
    public int Damage;
    public int Resistance;
    public string Info()
    public void OnUse()
}
public class AttributeManager : IDamageAffecting
{
    public int Constitution;
    public int Strenght;
    public int Intelligence;
    public int Dexterity;
    public string Info();
}
public class SkillManager : IDamageAffecting
{
    //This may get scrapped.
    public string Info();
}
public class Skill : IDamageAffecting
{
    //This may get scrapped.
    public Guid ID;
}
public class ResourceObject
{
    //This may get scrapped.
    public Guid ID;
    public StorageContainer resources;
    public Item onGather();

    public override bool AddItem(Item item)
    {
        return false;
    }
}

###Meters

public class IMeter
{
     // These variables are set by Unity
     public max;

     // can be onHalfHour, etc 
     // abstract function for handling time change
     public void onHour();

     // general function for changing meter value
     public void change(int amount);
}
public class HealthMeter
{
     // These variables are set by Unity
     Dictionary<string, int> damage;
     // Types: 
     //   Ash
     //   HP
     //   Food
     //   Water

     public void onHour();

     // changes HP value in damage dictionary
     public void change(int amount);

     // handles the change damage effect (to the meter)
     public void onChange();

     // uses string for damage type to get value
     public int getDamageFor(string damageType);

     // uses string for specific change,
     public void change(int amount, string damageType);
}
public class StaminaMeter
{
     // These variables are set by Unity
     public int current;
     public int TIME_DEGRADE;

     public void onHour();

     // exhaustion when current <= 0
     public void change(int amount);
}
public class FoodMeter
{
     // These variables are set by Unity
     public int current;
     public const int TIME_DEGRADE;

     public void onHour();

     // if current reaches 0, character.destroy()
     public void change(int amount);
}
public class WaterMeter
{
     // These variables are set by Unity
     public int current;
     public const int TIME_DEGRADE;

     public void onHour();

     // if current reaches zero, character.destroy() 
     public void change(int amount);
}

Clone this wiki locally