ACE3/addons/spottingscope/CfgVehicles.hpp
commy2 4e04100ea9 Spotting scope - New reticle using CBA scripted optics (#6964)
* new reticle for spotting scope

* reticle b

* illuminated reticle for night

* use orig spotting scope reticle, bigger occular

* fix spotting scope attenuation
2019-05-27 10:46:21 -05:00

232 lines
7.4 KiB
C++

class CBA_Extended_EventHandlers_base;
class CfgVehicles {
class Man;
class CAManBase: Man {
class ACE_SelfActions {
class ACE_Equipment {
class GVAR(place) {
displayName = CSTRING(Placedown);
condition = QUOTE([ARR_2(_player,'ACE_SpottingScope')] call EFUNC(common,hasItem));
statement = QUOTE([ARR_2(_player,'ACE_SpottingScope')] call FUNC(place));
showDisabled = 0;
icon = QPATHTOF(UI\w_spottingscope_ca.paa);
};
};
};
};
class ThingX;
class ACE_SpottingScope_Tube: ThingX {
author = ECSTRING(common,ACETeam);
scope = 1;
displayName = CSTRING(DisplayName);
model = QPATHTOF(data\ace_spottingscope_tube.p3d);
};
class LandVehicle;
class StaticWeapon: LandVehicle {
class Turrets {
class MainTurret;
};
class ACE_Actions {
class ACE_MainActions;
};
};
class ACE_SpottingScopeObject: StaticWeapon {
EGVAR(dragging,canDrag) = 1;
EGVAR(dragging,dragPosition)[] = {0,1,0};
EGVAR(dragging,dragDirection) = 0;
class ACE_Actions: ACE_Actions{
class ACE_MainActions: ACE_MainActions {
selection = "main_turret_axis";
class ACE_Pickup {
selection = "";
displayName = CSTRING(PickUp);
distance = 5;
condition = QUOTE((alive _target) && (count (crew _target) == 0));
statement = QUOTE([ARR_2(_target,_player)] call FUNC(pickup));
showDisabled = 0;
exceptions[] = {};
icon = QPATHTOF(UI\w_spottingscope_ca.paa);
};
};
};
class EventHandlers {
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers_base {};
};
CBA_ScriptedOpticClass = "ACE_SpottingScopeOptic";
author = ECSTRING(common,ACETeam);
scope = 1;
side = 1;
typicalCargo[] = {"Soldier"};
displayName = CSTRING(DisplayName);
model = QPATHTOF(data\ace_spottingscope.p3d);
mapSize = 0.5;
transportSoldier = 0;
getInAction = "PlayerProne";
getOutAction = "PlayerProne";
editorSubcategory = "EdSubcat_Turrets";
threat[] = {0.7, 0.3, 0};
accuracy = 0.12;
cost = 10000;
icon = "\A3\Static_F_Gamma\data\UI\map_StaticTurret_AT_CA.paa";
attenuationEffectType = "";
class SpeechVariants {
class Default {
speechSingular[] = {"veh_infantry_SF_s"};
speechPlural[] = {"veh_infantry_SF_p"};
};
};
textSingular = "$STR_A3_nameSound_veh_infantry_SF_s";
textPlural = "$STR_A3_nameSound_veh_infantry_SF_p";
nameSound = "veh_infantry_SF_s";
class Turrets: Turrets {
class MainTurret: MainTurret {
minTurn = -45;
maxTurn = 45;
initTurn = 0;
minElev = -10;
maxElev = 40;
initElev = 0;
class ViewGunner {
initAngleX = 5;
minAngleX = -30;
maxAngleX = 30;
initAngleY = 0;
minAngleY = -100;
maxAngleY = 100;
initFov = 0.75;
minFov = 0.25;
maxFov = 1.25;
};
class ViewOptics {
initAngleX = 0;
minAngleX = -30;
maxAngleX = 30;
initAngleY = 0;
minAngleY = -100;
maxAngleY = 100;
minFov = "0.25/35"; // real one is 15x-45x, but max mag in game is 37x
maxFov = "0.25/5";
initFov= "0.25/5";
};
weapons[] = {};
magazines[] = {};
gunnerOpticsColor[] = {1,1,1,1};
gunnerOpticsModel = "\A3\Weapons_F\empty.p3d";
gunnerOpticsEffect[] = {"OpticsCHAbera1","OpticsBlur2"};
gunnerOutOpticsShowCursor = 0;
gunnerOpticsShowCursor = 0;
gunnerAction = "ACE_SpottingScope";
gunnerGetInAction = "PlayerProne";
gunnerGetOutAction = "PlayerProne";
gunnerForceOptics = 0;
ejectDeadGunner = 0;
turretInfoType = "CBA_ScriptedOptic_zooming";
opticsDisablePeripherialVision = 1;
};
};
// damage handling
armor = 80;
class Damage {
tex[] = {};
mat[] = {
QPATHTO_R(data\ace_spottingscope_metal.rvmat),
QPATHTO_R(data\ace_spottingscope_metal_damage.rvmat),
QPATHTO_R(data\ace_spottingscope_metal_destruct.rvmat),
QPATHTO_R(data\ace_spottingscope_glass.rvmat),
QPATHTO_R(data\ace_spottingscope_glass_damage.rvmat),
QPATHTO_R(data\ace_spottingscope_glass_destruct.rvmat),
QPATHTO_R(data\ace_spottingscope_rubber.rvmat),
QPATHTO_R(data\ace_spottingscope_rubber_damage.rvmat),
QPATHTO_R(data\ace_spottingscope_rubber_damage.rvmat)
};
};
editorPreview = QPATHTOF(data\preview_spottingscope.jpg);
};
class ACE_B_SpottingScope: ACE_SpottingScopeObject {
author = ECSTRING(common,ACETeam);
_generalMacro = "ACE_B_SpottingScope";
scope = 2;
side = 1;
faction = "BLU_F";
crew = "B_spotter_F";
};
class ACE_O_SpottingScope: ACE_SpottingScopeObject {
author = ECSTRING(common,ACETeam);
_generalMacro = "ACE_O_SpottingScope";
scope = 2;
side = 0;
faction = "OPF_F";
crew = "O_spotter_F";
};
class ACE_I_SpottingScope: ACE_SpottingScopeObject {
author = ECSTRING(common,ACETeam);
_generalMacro = "ACE_I_SpottingScope";
scope = 2;
side = 2;
faction = "IND_F";
crew = "I_spotter_F";
};
class ACE_B_T_SpottingScope: ACE_SpottingScopeObject {
author = ECSTRING(common,ACETeam);
_generalMacro = "ACE_B_T_SpottingScope";
scope = 2;
side = 1;
faction = "BLU_T_F";
crew = "B_T_Spotter_F";
};
class ACE_O_T_SpottingScope: ACE_SpottingScopeObject {
author = ECSTRING(common,ACETeam);
_generalMacro = "ACE_O_T_SpottingScope";
scope = 2;
side = 0;
faction = "OPF_T_F";
crew = "O_T_Spotter_F";
};
class Item_Base_F;
class ACE_Item_SpottingScope: Item_Base_F {
author[] = {"Rocko", "Scubaman3D"};
scope = 2;
scopeCurator = 2;
displayName = CSTRING(DisplayName);
vehicleClass = "Items";
editorCategory = "EdCat_Equipment";
editorSubcategory = "EdSubcat_InventoryItems";
editorPreview = QPATHTOF(data\preview_spottingscope.jpg);
class TransportItems {
MACRO_ADDITEM(ACE_SpottingScope,1);
};
};
class Box_NATO_Support_F;
class ACE_Box_Misc: Box_NATO_Support_F {
class TransportItems {
MACRO_ADDITEM(ACE_SpottingScope,2);
};
};
};