private void EnableHidingItem(Material item, float startTime, ShaftAimingMapWorkingNode weapon) { Vector3 barrelOriginWorld = new MuzzleVisualAccessor(weapon.muzzlePoint).GetBarrelOriginWorld(); ShaftAimingMapEffectComponent shaftAimingMapEffect = weapon.shaftAimingMapEffect; float initialEnergy = weapon.shaftAimingWorkingState.InitialEnergy; float maxRadius = shaftAimingMapEffect.ShrubsHidingRadiusMax * initialEnergy; Vector4 hidingCenter = new Vector4(barrelOriginWorld.x, barrelOriginWorld.y, barrelOriginWorld.z, 0f); this.EnableMaterialHiding(item, hidingCenter, weapon.shaftEnergy.UnloadAimingEnergyPerSec, maxRadius, Mathf.Lerp(shaftAimingMapEffect.ShrubsHidingRadiusMin, maxRadius, weapon.shaftAimingWorkingState.ExhaustedEnergy / initialEnergy), startTime); }
public void StartHiding(NodeAddedEvent evt, ShaftAimingMapWorkingNode weapon, [JoinByBattle] ICollection <BonusBoxNode> bonuses, [JoinAll] ICollection <BonusRegionNode> regions, ShaftAimingMapWorkingNode weaponToJoinParachutes, [JoinByBattle] ICollection <BonusParachuteNode> parachutes, ShaftAimingMapWorkingNode weaponToJoinFlags, [JoinByBattle] ICollection <FlagNode> flags, [JoinAll] ICollection <SingleNode <MapHidingGeometryComponent> > hidingGeometryCollection) { float timeSinceLevelLoad = Time.timeSinceLevelLoad; foreach (BonusBoxNode node in bonuses) { this.EnableHidingItem(node.material.Material, timeSinceLevelLoad, weapon); } foreach (BonusRegionNode node2 in regions) { this.EnableHidingItem(node2.material.Material, timeSinceLevelLoad, weapon); } foreach (BonusParachuteNode node3 in parachutes) { this.EnableHidingItem(node3.parachuteMaterial.Material, timeSinceLevelLoad, weapon); } foreach (FlagNode node4 in flags) { this.EnableHidingItem(node4.flagInstance.FlagInstance.GetComponent <Sprite3D>().material, timeSinceLevelLoad, weapon); } ShaftAimingMapEffectComponent shaftAimingMapEffect = weapon.shaftAimingMapEffect; foreach (SingleNode <MapHidingGeometryComponent> node5 in hidingGeometryCollection) { Renderer[] hidingRenderers = node5.component.hidingRenderers; int index = 0; while (index < hidingRenderers.Length) { Renderer renderer = hidingRenderers[index]; renderer.receiveShadows = false; Material[] materials = renderer.materials; int num3 = 0; while (true) { if (num3 >= materials.Length) { index++; break; } Material material = materials[num3]; if (material.shader == shaftAimingMapEffect.DefaultLeavesShader) { this.EnableHidingItem(material, weapon, shaftAimingMapEffect.HidingLeavesShader, 0xdac, timeSinceLevelLoad); } else if (material.shader == shaftAimingMapEffect.DefaultBillboardTreesShader) { this.EnableHidingItem(material, weapon, shaftAimingMapEffect.HidingBillboardTreesShader, timeSinceLevelLoad); } num3++; } } } }
private void EnableHidingItem(Material material, ShaftAimingMapWorkingNode weapon, Shader targetShader, int targetRenderQueue, float startTime) { material.shader = targetShader; material.renderQueue = targetRenderQueue; this.EnableHidingItem(material, startTime, weapon); }
public void StartHidingAnyNewParachute(NodeAddedEvent evt, BonusParachuteNode parachute, [JoinByBattle] ShaftAimingMapWorkingNode weapon) { float timeSinceLevelLoad = Time.timeSinceLevelLoad; this.EnableHidingItem(parachute.parachuteMaterial.Material, timeSinceLevelLoad, weapon); }
public void StartHidingAnyNewFlag(NodeAddedEvent evt, FlagNode flag, [JoinByBattle] ShaftAimingMapWorkingNode weapon) { float timeSinceLevelLoad = Time.timeSinceLevelLoad; this.EnableHidingItem(flag.flagInstance.FlagInstance.GetComponent <Sprite3D>().material, timeSinceLevelLoad, weapon); }
public void StartHidingAnyNewBonus(NodeAddedEvent evt, BonusBoxNode bonus, [JoinByBattle] ShaftAimingMapWorkingNode weapon) { float timeSinceLevelLoad = Time.timeSinceLevelLoad; this.EnableHidingItem(bonus.material.Material, timeSinceLevelLoad, weapon); }