class OnBeingNoticed extends Event
{
	var objectThatNoticed : weak< GameObject >;
}

class ClearBeingNoticedBB extends Event
{
}

class EndGracePeriodAfterSpawn extends Event
{
}

class OnBeingTarget extends Event
{
	var objectThatTargets : weak< GameObject >;
	var noLongerTarget : Bool;
}

class StopCritHealthRumble extends Event
{
}

class PlayerEnteredNewDistrictEvent extends Event
{
	var gunshotRange : Float;
	var explosionRange : Float;
}

class UpdateMiniGameProgramsEvent extends Event
{
	var program : MinigameProgramData;
	var add : Bool;
}

class StoreMiniGameProgramEvent extends Event
{
	var program : MinigameProgramData;
	var add : Bool;
}

class DelayedComDeviceClose extends Event
{
}

class PlayerDamageFromDataEvent extends TickableEvent
{
}

class CPOMissionDataUpdateEvent extends Event
{
}

class CPOChoiceTokenDrawTextEvent extends Event
{
}

class HealthUpdateEvent extends Event
{
	var value : Float;
	var healthDifference : Float;
}

class SetUpEquipmentOverlayEvent extends Event
{
	var meshOverlayEffectName : CName;
	var meshOverlayEffectTag : CName;
	var meshOverlaySlots : array< TweakDBID >;
}

class BeingTargetByLaserSightUpdateEvent extends Event
{
	var weapon : weak< WeaponObject >;
	var state : LaserTargettingState;
}

class MagFieldHitEvent extends Event
{
}

class KatanaMagFieldHitDelayEvent extends Event
{
}

class ResetMagFieldHitsEvent extends Event
{
}

class ResetTickEvent extends TickableEvent
{
}

class MeleeHitSlowMoEvent extends Event
{
	var isStrongAttack : Bool;
}

class MeleeHitEvent extends Event
{
	var instigator : weak< GameObject >;
	var target : weak< GameObject >;
	var isStrongAttack : Bool;
	var hitBlocked : Bool;
}

class OrderTakedownEvent extends Event
{
	var target : weak< GameObject >;
}

class CPOMissionDataTransferred extends Event
{
	replicated var dataDownloaded : Bool;
	default dataDownloaded = false;
	var dataDamagesPresetName : CName;
	default dataDamagesPresetName = 'CPODataRaceParams';
	var compatibleDeviceName : CName;
	replicated var ownerDecidesOnTransfer : Bool;
	default ownerDecidesOnTransfer = false;
	replicated var isChoiceToken : Bool;
	default isChoiceToken = false;
	replicated var choiceTokenTimeout : Uint32;
	default choiceTokenTimeout = 0.0;
}

class CPOMissionPlayerVotedEvent extends Event
{
	var compatibleDeviceName : CName;
}

class AdHocAnimationEvent extends Event
{
	var animationIndex : Int32;
	var useBothHands : Bool;
	var unequipWeapon : Bool;
	var animationDuration : Float;
	default animationDuration = -1.f;
}

class UpdateVisibilityModifierEvent extends Event
{
}

class UpdateAutoRevealStatEvent extends Event
{
	var hasAutoReveal : Bool;
}

class FillAnimWrapperInfoBasedOnEquippedItem extends Event
{
	var itemID : ItemID;
	var itemType : CName;
	var itemName : CName;
	var clearWrapperInfo : Bool;
}

class RequestEquipHeavyWeapon extends Event
{
	var itemID : ItemID;
}

class SceneForceWeaponAim extends Event
{

	public constexpr function GetFriendlyDescription() : String
	{
		return "Force V to aim weapon";
	}

}

class SceneFirstEquipState extends Event
{
	editable var prevented : Bool;

	public constexpr function GetFriendlyDescription() : String
	{
		return "Prevet weapon first equip animation";
	}

}

class SceneForceWeaponSafe extends Event
{
	editable var weaponLoweringSpeedOverride : Float;

	public constexpr function GetFriendlyDescription() : String
	{
		return "Force V to equip/lower weapon";
	}

}

class ManagePersonalLinkChangeEvent extends Event
{
	editable var shouldEquip : Bool;

	public constexpr function GetFriendlyDescription() : String
	{
		return "Manager Personal Link Visualisation";
	}

}

class MissingWorkspotComponentFailsafeEvent extends Event
{
	var playerEntityID : EntityID;
}

class EnableBraindanceActions extends Event
{
	editable var actionMask : SBraindanceInputMask;

	public constexpr function GetFriendlyDescription() : String
	{
		return "Enables all actions that are set to true in the actionMask struct";
	}

}

class BraindanceInputChangeEvent extends Event
{
	var bdSystem : BraindanceSystem;

	public constexpr function GetFriendlyDescription() : String
	{
		return "signals that braindance controls changed and need a UI refresh";
	}

}

class DisableBraindanceActions extends Event
{
	editable var actionMask : SBraindanceInputMask;

	public constexpr function GetFriendlyDescription() : String
	{
		return "Disables all actions that are set to true in the actionMask struct";
	}

}

class ForceBraindanceCameraToggle extends Event
{
	editable var editorState : Bool;

	public constexpr function GetFriendlyDescription() : String
	{
		return "Setting editorState will force enable the Editor (view from braindance replacer)";
	}

}

class PauseBraindance extends Event
{

	public constexpr function GetFriendlyDescription() : String
	{
		return "Forces pause in braindance";
	}

}

class ModifyOverlappedSecurityAreas extends Event
{
	var isEntering : Bool;
	var zoneID : PersistentID;
}

class WeaponEquipEvent extends Event
{
	editable var animFeature : AnimFeature_EquipType;
	editable var item : weak< ItemObject >;
}

class RefreshItemPlayerScalingEvent extends Event
{
}

class BlockAndCompensateScalingEvent extends Event
{
}

class IconicsReworkCompensateEvent extends Event
{
}

class UnifyIconicsUpgradeCountWithEffectiveTierEvent extends Event
{
}

class UnifyIconicsUpgradeCountWithEffectiveTierInStashEvent extends Event
{
}

class RefreshPlayerItemSlotsEvent extends Event
{
}

class RetrofixQuickhacksEvent extends Event
{
}

class RetrofixCyberwaresEvent extends Event
{
}

class RetrofixOverallocatedCyberwareEvent extends Event
{
}

class RescaleNonIconicWeaponsEvent extends Event
{
}

class RestoreCybWeaponQualitiesEvent extends Event
{
}

class RasetsuToPlayerScalingEvent extends Event
{
}

class DodgeToAvoidCombatEvent extends Event
{
	var delayID : DelayID;
	var npcID : EntityID;
}

class SetSlowMoForOnePunchAttackEvent extends Event
{
}

class ExitCombatOnOpticalCamoActivatedEvent extends Event
{
	var npc : weak< GameObject >;
}

class EnablePlayerVisibilityEvent extends Event
{
}

class UpdateEquippedWeaponsHandlingEvent extends Event
{
	var currentStaminaValue : Float;
}

class ClearAnimFeatureCarryEvent extends Event
{
}

class RefreshQuickhackMenuEvent extends Event
{
}

class FelledEvent extends Event
{
	editable var m_active : Bool;

	public constexpr function GetFriendlyDescription() : String
	{
		return "Force V to be in felled state.";
	}

}

importonly class ForceResetAmmoEvent extends Event
{
	public import function SetTargetValue( targetValue : Int32 );
}

class ConsumablesChargesReworkEvent extends Event
{
}

class ScaleAndLockLeftHandWeaponsCompensateInStashEvent extends Event
{
}

importonly final class HalloweenEvent extends Event
{
}

