T_UNIT_SIEGE
};
+/*
+ * unit class
+ * each class has weaknesses to
+ * certain damage types
+ */
+enum t_unit_class {
+ T_UNIT_CLASS_INFANTRY,
+ T_UNIT_CLASS_MOUNTED,
+ T_UNIT_CLASS_SIEGE,
+ T_UNIT_CLASS_BUILDING
+};
+
struct t_unit {
unsigned int id;
enum t_unit_type type;
enum t_unit_flags flags;
+ enum t_unit_class unit_class;
+ enum t_unit_damage_type damage_type;
i16 view_radius;
i16 armor;
/* Unit damage type and damage range */
- i16 damage_min;
- i16 damage_max;
- enum t_unit_damage_type damage_type;
-
- /* a unit can be reistant to certain damage types */
- enum t_unit_damage_type res;
+ i16 damage;
struct t_command_queue commands;
};