WeaponType Class Reference

The example class is derived from another to demonstrate how inheritance works with ExposeMember. This example also shows how to specify foldout groups with ExposeMember, specifying tool-tips, and the alternate label & alternateLabelConditionalName parameters.

Detailed Description

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using EyE.Unity;
{
[System.Flags]
public enum DamageType
{ piercing=1, slashing=2, bludgeon=4, fire=8, poison=16}
[CreateAssetMenuAttribute(fileName = "DefaultWeaponType", menuName = "Types/InventoryItemType/WeaponType", order = 1)]
public class WeaponType : InventoryObjectType
{
[ExposeMember(tooltip = "When Saved as an asset, the system will attempted to use this string for filename of the WeaponType asset.")]
public string weaponTypeName { get { return base.name; } set { base.name = value; } }
[ExposeMember(group ="FoldOutDamageDetails", displayOrderInGroup = 0)]
public int Damage = 1;
[ExposeMember(group = "FoldOutDamageDetails", displayOrderInGroup = 1)]
public DamageType typesOfDamageInflicted = DamageType.bludgeon;
[ExposeMember(group = "FoldOutDamageDetails", displayOrderInGroup = 0)]
public float dps { get { return Damage * attackRate; } }
[ExposeMember(alternatelabel ="Fire Rate", alternateLabelConditionalName = "MissleWeapon", tooltip = "Number of attacks per round.")]
public float attackRate=1f;
[ExposeMember(group = "FoldOutMissleWeapon", conditionalDisplayMemberName = "isBaseWeaponType")]
public float range = 1.0f;
private bool __missleWeapon = false;
[ExposeMember(conditionalDisplayMemberName = "isBaseWeaponType")]
public virtual bool MissleWeapon { get { return __missleWeapon; } set { __missleWeapon = value; } }
[ExposeMember(group = "FoldOutMissleWeapon", tooltip ="Number of attacks that can be made before needing to reload.", conditionalDisplayMemberName = "isBaseWeaponType")]
public int maxAmmo;
[ExposeMember(group = "FoldOutMissleWeapon", tooltip = "How long this weapon type takes to reload.", conditionalDisplayMemberName = "isBaseWeaponType")]
public float reloadTime;
[ExposeMember(group = "FoldOutMissleWeapon", tooltip = "Can multiple kinds of ammo be fired by this weapon type.", conditionalDisplayMemberName = "MissleWeapon")]
public bool variableAmmo = false;
[ExposeMember(group = "FoldOutMissleWeapon/FoldOutvariableAmmo", tooltip = "Number typesofAmmo it can fire.", conditionalDisplayMemberName = "MissleWeapon")]
public List<AmmunitionType> usableKindsOfAmmo = new List<AmmunitionType>();
[ExposeMember]
public override float Price
{
get
{
return dps * range;
}
}
protected bool isBaseWeaponType()
{
return GetType() == typeof(WeaponType);
}
}
}

Public Attributes

float attackRate
 
int Damage
 
int maxAmmo
 
float range
 
float reloadTime
 
DamageType typesOfDamageInflicted
 
List< AmmunitionType > usableKindsOfAmmo
 
bool variableAmmo
 
- Public Attributes inherited from InventoryObjectType
Mesh model
 
ObjectSize sizeInInventory
 
string typeDescription
 

Protected Member Functions

bool isBaseWeaponType ()
 

Properties

float dps [get]
 
virtual bool MissleWeapon [get, set]
 
override float Price [get]
 
string weaponTypeName [get, set]
 
- Properties inherited from InventoryObjectType
string inventoryObjectTypeName [get, set]
 
abstract float Price [get]
 
+ Inheritance diagram for WeaponType:
+ Collaboration diagram for WeaponType:
EyE
This namespace contains classes that provide various tools for use in the Unity Editor.
Definition: EmbededXMLTooltip.cs:5
EyE.Unity.Examples
Definition: CatDebugExample.cs:7
EyE.Unity
This namespace holds classes that extended or inherit from various Unity defined classes....
Definition: EmbededXMLTooltip.cs:5
EyE.Unity.Examples.DamageType
DamageType
Enum used in WeaponType to show how they are exposed
Definition: WeaponType.cs:12