internal static void HighlightGridTile( GridTile tile ) { me.gridTileHighlighter.renderer.enabled = true; me.gridTileHighlighter.transform.position = tile.transform.position + Vector3.up * .066f; me.hideAllHolos(); if( mode == HoloMode.Cross ) { if( crossHolo != null ) { crossHolo.active = true; crossHolo.transform.position = tile.transform.position; if( tile.obstructed ) { crossHolo.transform.position += Vector3.up * tile.obstruction.height * 2; } } } else if( mode == HoloMode.HoloUnit ) { if( tile.walkable ) { GridTile smallestCover = null; foreach( GridTile cover in tile.relations.neighbours ) { if( cover.obstructed && !tile.relations.relations[cover].diagonal ) { if( smallestCover == null || smallestCover.coverValue > cover.coverValue ) { smallestCover = cover; } } } unitHolo = me.unitHoloRunning; if( smallestCover == null ) { unitHolo = me.unitHoloRunning; unitHolo.model.renderer.enabled = true; unitHolo.transform.position = tile.transform.position; unitHolo.transform.LookAt( God.selectedUnit.transform ); unitHolo.transform.Rotate( Vector3.up * 180 ); } else { if( smallestCover.coverValue < God.selectedUnit.propHeight ) { unitHolo = me.unitHoloInCoverDucked; } else { unitHolo = me.unitHoloInCover; } unitHolo.model.renderer.enabled = true; unitHolo.transform.position = tile.transform.position; unitHolo.transform.LookAt( smallestCover.transform ); } unitHolo.animation.Rewind(); unitHolo.animation.Play( "FadeIn" ); unitHolo.transform.localScale = new Vector3( 1, God.selectedUnit.props.size, 1 ); //tile.DebugOut( Mathf.Floor( Angles.FixAngleDegSigned( God.selectedUnit.currentTile.relations.GetRelation( tile ).angle + God.selectedUnit.transform.eulerAngles.y - 90 ) ).ToString() ); //List<GridTile> list = GodOfPathfinding.GetLine( selectedUnit.currentTile, tile ); //foreach( GridTile t in grid.GetAllTiles() ) { // bool flag = list.Contains( t ); // t.transform.Find( "flag" ).renderer.enabled = flag; //} } } //float danger = 0; //RangedAttackResult r; //foreach( Unit subjectUnit in allUnits ) { // if( selectedUnit.team.IsEnemy( subjectUnit ) ) { // if( subjectUnit.inPlay && subjectUnit.CanSee( tile ) ) { // subjectUnit.__SetFlag( true ); // r = new RangedAttackResult( subjectUnit, selectedUnit, tile ); // danger += r.hitChance * (1-danger/100) ; // } // } //} //me.gridTileHighlighter.ShowDanger( danger ); }
public void Start() { me = this; crossHolo = _crossHolo; hideAllHolos(); }