![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2009 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00008 00010 00011 #pragma once 00012 00013 #include "vrfmodel/damageAdjudicationActuator.h" 00014 00015 class DtDetonationContext; 00016 class DtMultipleHitDamageActuatorDescriptor; 00017 class DtMultipleHitDamagePSR; 00018 00022 // 00024 class DT_DLL_vrfmodel DtMultipleHitDamageActuator : 00025 public DtDamageAdjudicationActuator 00026 { 00027 00028 public: 00029 00032 DtMultipleHitDamageActuator(const DtString& name, 00033 DtVrfObject* owner, 00034 DtSimManager* simManager, 00035 DtComponentDescriptor* desc = 0, 00036 DtReaderWriterRegistry* parentRegistry = 0); 00037 00040 virtual ~DtMultipleHitDamageActuator(); 00041 00043 virtual bool init(); 00044 00047 virtual bool createPSR(); 00048 00049 //Override to set up from PSR 00050 virtual void tick(); 00051 00059 // 00068 // 00074 00076 virtual bool adjudicateDirectDamage(const DtDetonationContext& detonationContext); 00077 00079 virtual bool adjudicateCollateralDamage(const DtDetonationContext& detonationContext); 00080 00083 virtual DtString type() const; 00084 00088 static DtSimComponent * creator(const DtString& name, 00089 DtVrfObject* owner, 00090 DtSimManager* simManager, 00091 DtComponentDescriptor* desc = 0, 00092 DtReaderWriterRegistry* parentRegistry = 0); 00093 00094 protected: 00095 00099 // 00103 // 00107 virtual bool getRangeEntry(const DtDetonationContext& detonationContext, 00108 DtPrbRangeTableEntry& rangeEntry, bool isDirectDamage = true); 00109 00112 // 00114 virtual bool isCatastrophicallyKilled(); 00115 00117 // 00119 virtual bool isFirepowerKilled(); 00120 00122 virtual bool isMobilityKilled(); 00123 00124 protected: 00125 00128 DtMultipleHitDamageActuatorDescriptor* myMultipleHitDamageComponentDescriptor; 00129 00131 int myCurrentHitPoints; 00132 DtMultipleHitDamagePSR * myProcessState; 00133 bool myFirstTick; 00134 00135 private: 00136 00138 DtMultipleHitDamageActuator(); 00139 00141 DtMultipleHitDamageActuator(const DtMultipleHitDamageActuator& orig); 00142 00144 DtMultipleHitDamageActuator& operator=(const DtMultipleHitDamageActuator& orig); 00145 00146 }; 00147