public void AttachDeco(CTile tile, EDeco deco) { var decoParam = DecoTable.Instance.Table[deco]; var data = this.GetDecoData(decoParam); var sprite = this._sprites[ListUtil <int> .GetRandomElement(decoParam.Sprites)]; FTile.SetEnvironmentFlagTrue(tile.GetFlags()); var handle = new GameObject(); var model = new MDeco(deco); model.SetData(data); var view = new VDeco(deco); var controller = new CDeco(); controller.SetGameHandle(handle); controller.SetModel(model); controller.SetView(view); var renderer = handle.AddComponent <SpriteRenderer>(); tile.SetCurrent(controller); renderer.sprite = sprite; renderer.transform.SetParent(tile.Handle.transform); renderer.transform.position = tile.Handle.transform.position; var tileRenderer = tile.Handle.GetComponent <SpriteRenderer>(); renderer.sortingLayerName = tileRenderer.sortingLayerName; renderer.sortingOrder = tileRenderer.sortingOrder + 1; }
public Sprite GetHeightRight() { var path = StringUtil.PathBuilder(PATH, "Height_Right"); var stuff = Resources.LoadAll(path); return(stuff[ListUtil <int> .GetRandomElement(this.TILE_BOTTOMS)] as Sprite); }
private void ProcessNewInjury(CChar tgt, MHit hit) { var injuries = new List <EInjury>(); injuries.AddRange(hit.Data.Ability.Data.Injuries); if (hit.Data.Ability.Data.ParentWeapon != null) { injuries.AddRange(hit.Data.Ability.Data.ParentWeapon.Data.Injuries); } var random = ListUtil <EInjury> .GetRandomElement(injuries); if (random != EInjury.None) { try { var injuryParams = InjuryTable.Instance.Table[random]; var injury = injuryParams.GetInjury(); var data = new EvInjuryData(); data.Hit = hit; data.Injury = injury; data.Target = tgt; var e = new EvInjury(data); e.TryProcess(); } catch (KeyNotFoundException e) { Debug.LogError("Injury not found: " + random.ToString()); Debug.LogError(e.Message); } } }
public void DoSingleFX(MHit hit) { var ability = hit.Data.Ability.Data.ParentAction.ActiveAbility; var sprites = this.GetSingleFXSprites(ability); if (sprites.Count > 0) { var roll = RNG.Instance.Next(ability.Data.MinSprites, ability.Data.MaxSprites); for (int i = 0; i < roll; i++) { var fx = new GameObject(); var renderer = fx.AddComponent <SpriteRenderer>(); var index = ListUtil <int> .GetRandomElement(ability.Data.Sprites); renderer.sprite = sprites[index]; renderer.sortingLayerName = SortingLayers.PARTICLES; fx.transform.position = hit.Data.Target.Model.Center; if (ability.Data.SingleFXRandomTranslate) { RotateTranslateUtil.Instance.RandomTranslate(fx, CombatGUIParams.SINGLE_FX_OFFSET); } fx.transform.SetParent(hit.Data.Target.Handle.transform); var delete = fx.AddComponent <SDestroyByLifetime>(); delete.Init(fx, CombatGUIParams.SINGLE_FX_DUR); } } hit.CallbackHandler(null); }
public Sprite GetZoneSprite(ZoneData data) { var path = StringUtil.PathBuilder(PATH, data.SpritesPath, ZONE_EXTENSION); var stuff = Resources.LoadAll(path); var index = ListUtil <int> .GetRandomElement(data.SpriteIndexes); return(stuff[index] as Sprite); }
public Sprite GetBloodSpatterLevelFive() { var path = StringUtil.PathBuilder(PATH, "Tileblood", TILE_EXTENSION); var stuff = Resources.LoadAll(path); var index = ListUtil <int> .GetRandomElement(this.LEVEL_FIVE_BLOOD_SPATTER); return(stuff[index] as Sprite); }
private Sprite GetZoneSprite(AZone zone, ZoneParams zoneParams) { var path = ZONE_PATH + zone.Type.ToString(); var sprites = Resources.LoadAll(path); var roll = ListUtil <int> .GetRandomElement(zoneParams.Sprites); return(sprites[roll] as Sprite); }
public void Init(SBulletThenEmbedData data) { this._data = data; this.AddCallback(this.Embed); this._data.TargetObject = ListUtil <GameObject> .GetRandomElement(this._data.TargetableObjects); this._data.Target = RotateTranslateUtil.Instance.RandomTranslate( this._data.Target, this._data.Offset); }
public IHex GetRandomNearbyTile(int probes, IHex tile) { var currNeighbors = tile.GetAdjacent(); for (int i = 0; i < probes; i++) { var random = ListUtil <IHex> .GetRandomElement(currNeighbors); currNeighbors = random.GetAdjacent(); } return(ListUtil <IHex> .GetRandomElement(currNeighbors)); }
public void ProcessPostFatalityBark(FatalityData data) { var hit = ListUtil <MHit> .GetRandomElement(data.FatalHits); var origin = data.Source.GameHandle; var barks = new List <string>(); if (hit.Data.Target.Current != null && hit.Data.Target.Current.GetType().Equals(typeof(CChar))) { var tgt = hit.Data.Target.Current as CChar; if (hit.Data.Source.Proxy.LParty == tgt.Proxy.LParty) { barks = BarkTable.Instance.Table[EBark.FriendlyFatality]; } else { var roll = RNG.Instance.NextDouble(); if (roll < NEUTRAL_BARK_CHANCE) { barks = BarkTable.Instance.Table[EBark.NeutralFatality]; var characters = CombatManager.Instance.GetData().Characters; origin = ListUtil <CChar> .GetRandomElement(characters).GameHandle; } else { barks = this.GetPostEnemyFatalityBarks(data); } } } else { var roll = RNG.Instance.NextDouble(); if (roll < NEUTRAL_BARK_CHANCE) { barks = BarkTable.Instance.Table[EBark.NeutralFatality]; var characters = CombatManager.Instance.GetData().Characters; origin = ListUtil <CChar> .GetRandomElement(characters).GameHandle; } else { barks = this.GetPostEnemyFatalityBarks(data); } } var bark = ListUtil <string> .GetRandomElement(barks); if (bark != null) { this.DisplayBark(bark, origin); } }
private void InitNonLiquidTile(CTile tile, Transform tileHolder) { var script = tile.Handle.AddComponent <STile>(); script.InitTile(tile); var sprites = this._spriteDict[tile.Model.Type]; var sprite = ListUtil <Sprite> .GetRandomElement(sprites); var render = tile.Handle.AddComponent <SpriteRenderer>(); render.sprite = sprite; render.sortingLayerName = SortingLayers.TILE_LAYER; tile.Handle.transform.SetParent(tileHolder); tile.Handle.name = SortingLayers.TILE + "( " + tile.Model.GetCol() + " / " + tile.Model.GetRow() + " )"; }
private VChar GetRandomHumanoid(PreCharParams c) { var p = new VChar(); var table = RaceParamsTable.Instance.Table; p.Face = ListUtil <int> .GetRandomElement(table[c.Race].Sprites.Face); if (table[c.Race].Sprites.HeadDeco1.Count > 0) { p.HeadDeco1 = ListUtil <int> .GetRandomElement(table[c.Race].Sprites.HeadDeco1); } else { p.HeadDeco1 = -1; } if (table[c.Race].Sprites.HeadDeco2.Count > 0) { p.HeadDeco2 = ListUtil <int> .GetRandomElement(table[c.Race].Sprites.HeadDeco2); } else { p.HeadDeco2 = -1; } if (table[c.Race].Sprites.TorsoDeco1.Count > 0) { p.TorsoDeco1 = ListUtil <int> .GetRandomElement(table[c.Race].Sprites.TorsoDeco1); } else { p.TorsoDeco1 = -1; } if (table[c.Race].Sprites.TorsoDeco2.Count > 0) { p.TorsoDeco2 = ListUtil <int> .GetRandomElement(table[c.Race].Sprites.TorsoDeco2); } else { p.TorsoDeco2 = -1; } p.Torso = ListUtil <int> .GetRandomElement(table[c.Race].Sprites.Torso); p.Head = p.Torso - TORSO_OFFSET; p.Sprites = CharSpriteLoader.Instance.GetCharacterSprites(c); return(p); }
public Sprite GetSlimeSplatter(int level) { var path = StringUtil.PathBuilder(PATH, "Slime_Zone"); var stuff = Resources.LoadAll(path); int index = 1; switch (level) { case (1): { index = ListUtil <int> .GetRandomElement(this.LEVEL_ONE_BLOOD_SPATTER); } break; case (2): { index = ListUtil <int> .GetRandomElement(this.LEVEL_TWO_BLOOD_SPATTER); } break; case (3): { index = ListUtil <int> .GetRandomElement(this.LEVEL_THREE_BLOOD_SPATTER); } break; case (4): { index = ListUtil <int> .GetRandomElement(this.LEVEL_FOUR_BLOOD_SPATTER); } break; case (5): { index = ListUtil <int> .GetRandomElement(this.LEVEL_FIVE_BLOOD_SPATTER); } break; } return(stuff[index] as Sprite); }
private void DisplayDodge(CChar target, MHit hit) { var dodge = target.GameHandle.AddComponent <SBoomerang>(); var dodgeTgt = ListUtil <CTile> .GetRandomElement(target.Tile.GetAdjacent()); var position = Vector3.Lerp(target.GameHandle.transform.position, dodgeTgt.Model.Center, CombatGUIParams.DODGE_LERP); position = RandomPositionOffset.RandomOffset(position, CombatGUIParams.DEFAULT_OFFSET); dodge.AddCallback(hit.CallbackHandler); dodge.Init(target.GameHandle, position, CombatGUIParams.DODGE_SPEED); var data = new HitDisplayData(); data.Color = CombatGUIParams.WHITE; data.Hit = hit; data.Priority = ViewParams.DODGE_PRIORITY; data.Text = "Dodge"; data.Target = target.GameHandle; data.YOffset = CombatGUIParams.FLOAT_OFFSET; data.Hit.AddDataDisplay(data); }
private void Embed(object o) { var random = ListUtil <GameObject> .GetRandomElement(this._data.TargetableObjects); if (random != null) { var handleRenderer = this._data.Handle.GetComponent <SpriteRenderer>(); var targetRenderer = random.GetComponent <SpriteRenderer>(); if (handleRenderer != null && targetRenderer != null) { handleRenderer.transform.SetParent(random.transform); handleRenderer.sortingLayerName = targetRenderer.sortingLayerName; handleRenderer.sortingOrder = targetRenderer.sortingOrder + 1; if (this._data.TargetChar != null) { this._data.TargetChar.Embedded.Add(this._data.Handle); } } } }