本文整理汇总了C#中Element.GetElementType方法的典型用法代码示例。如果您正苦于以下问题:C# Element.GetElementType方法的具体用法?C# Element.GetElementType怎么用?C# Element.GetElementType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Element
的用法示例。
在下文中一共展示了Element.GetElementType方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: UpdateVisibility
public void UpdateVisibility(Element element)
{
var mainWindow = MainWindow.MIns;
if (mainWindow == null)
return;
if (element?.GetElementType() == null)
return;
switch (element.GetElementType().GetElementType())
{
case ElementType.Type.BUILDING_CITYGUARD_HOUSE:
EnableCanvas(mainWindow.recruit_cityguard);
break;
case ElementType.Type.BUILDING_MOONGLOW_TOWER:
EnableCanvas(mainWindow.recruit_mage);
EnableCanvas(mainWindow.recruit_warlock);
break;
case ElementType.Type.BUILDING_STABLE:
EnableCanvas(mainWindow.recruit_crossbow);
EnableCanvas(mainWindow.recruit_knight);
EnableCanvas(mainWindow.recruit_paladin);
break;
case ElementType.Type.BUILDING_TRAINING_GROUND:
EnableCanvas(mainWindow.recruit_berserker);
EnableCanvas(mainWindow.recruit_guardian);
EnableCanvas(mainWindow.recruit_ranger);
EnableCanvas(mainWindow.recruit_templar);
break;
}
}
示例2: Buy
public bool Buy(Element element)
{
if (element == null)
return false;
int elementLevel = element.Level;
if (elementLevel < 0 || elementLevel >= 10)
return false;
if (element.GetElementType() == null)
return false;
ElementCost elementCost = element.GetElementType().GetElementCost(elementLevel + 1);
if (elementCost == null)
return false;
return CheckRessourcesAvailability(elementCost);
}
示例3: CheckFieldsCount
public void CheckFieldsCount(Element element)
{
if (element == null || !element.HasElement || element.GetElementType() == null)
return;
if (element.GetElementType().GetElementType() != ElementType.Type.BUILDING_FARM)
return;
Element[,] map = _gameboard.GetMap();
int frameCount = _gameboard.GetFrameCount;
int x = element.PositionX;
int y = element.PositionY;
int fieldsCount = 0;
#region Fields count
if (y > 0)
{
if (x > 0)
{
if (!map[x - 1, y - 1].HasElement)
{
fieldsCount++;
}
}
if (!map[x, y - 1].HasElement)
{
fieldsCount++;
}
if (x < frameCount - 1)
{
if (!map[x + 1, y - 1].HasElement)
{
fieldsCount++;
}
}
}
if (y < frameCount - 1)
{
if (x > 0)
{
if (!map[x - 1, y + 1].HasElement)
{
fieldsCount++;
}
}
if (!map[x, y + 1].HasElement)
{
fieldsCount++;
}
if (x < frameCount - 1)
{
if (!map[x + 1, y + 1].HasElement)
{
fieldsCount++;
}
}
}
if (x > 0)
{
if (!map[x - 1, y].HasElement)
{
fieldsCount++;
}
}
if (x < frameCount - 1)
{
if (!map[x + 1, y].HasElement)
{
fieldsCount++;
}
}
#endregion
element.FieldsCount = fieldsCount;
}
示例4: checkNeighbourRessources
private void checkNeighbourRessources(Element element)
{
if (element == null || !element.HasElement || element.GetElementType() == null)
return;
Element[,] map = _gameboard.GetMap();
int frameCount = _gameboard.GetFrameCount;
int x = element.PositionX;
int y = element.PositionY;
int ressourceCount = 0;
ElementType.Type ressourceType = ElementType.GetBonusRessource(element.GetElementType().GetElementType());
if (ressourceType == ElementType.Type.DEFAULT)
{
return;
}
if (y > 0)
{
if (x > 0)
{
if (map[x - 1, y - 1].HasElement && map[x - 1, y - 1].GetElementType().GetElementType() == ressourceType)
ressourceCount++;
}
if (map[x, y - 1].HasElement && map[x, y - 1].GetElementType().GetElementType() == ressourceType)
ressourceCount++;
if (x < frameCount - 1)
{
if (map[x + 1, y - 1].HasElement && map[x + 1, y - 1].GetElementType().GetElementType() == ressourceType)
ressourceCount++;
}
}
if (y < frameCount - 1)
{
if (x > 0)
{
if (map[x - 1, y + 1].HasElement && map[x - 1, y + 1].GetElementType().GetElementType() == ressourceType)
ressourceCount++;
}
if (map[x, y + 1].HasElement && map[x, y + 1].GetElementType().GetElementType() == ressourceType)
ressourceCount++;
if (x < frameCount - 1)
{
if (map[x + 1, y + 1].HasElement && map[x + 1, y + 1].GetElementType().GetElementType() == ressourceType)
ressourceCount++;
}
}
if (x > 0)
{
if (map[x - 1, y].HasElement && map[x - 1, y].GetElementType().GetElementType() == ressourceType)
ressourceCount++;
}
if (x < frameCount - 1)
{
if (map[x + 1, y].HasElement && map[x + 1, y].GetElementType().GetElementType() == ressourceType)
ressourceCount++;
}
element.NbRessourcesAround = ressourceCount;
}
示例5: checkNeighbourBonusBuilding
private void checkNeighbourBonusBuilding(Element element)
{
if (element == null || !element.HasElement || element.GetElementType() == null)
return;
Element[,] map = _gameboard.GetMap();
int frameCount = _gameboard.GetFrameCount;
int x = element.PositionX;
int y = element.PositionY;
Element bonusBuilding = null;
ElementType.Type buildingBonurType =
ElementType.GetBonusBuilding(element.GetElementType().GetElementType());
if (buildingBonurType == ElementType.Type.DEFAULT)
{
return;
}
if (y > 0)
{
if (x > 0)
{
if (map[x - 1, y - 1].HasElement &&
map[x - 1, y - 1].GetElementType().GetElementType() == buildingBonurType)
{
bonusBuilding = getBestOne(bonusBuilding, map[x - 1, y - 1]);
}
}
if (map[x, y - 1].HasElement && map[x, y - 1].GetElementType().GetElementType() == buildingBonurType)
{
bonusBuilding = getBestOne(bonusBuilding, map[x, y - 1]);
}
if (x < frameCount - 1)
{
if (map[x + 1, y - 1].HasElement &&
map[x + 1, y - 1].GetElementType().GetElementType() == buildingBonurType)
{
bonusBuilding = getBestOne(bonusBuilding, map[x + 1, y - 1]);
}
}
}
if (y < frameCount - 1)
{
if (x > 0)
{
if (map[x - 1, y + 1].HasElement &&
map[x - 1, y + 1].GetElementType().GetElementType() == buildingBonurType)
{
bonusBuilding = getBestOne(bonusBuilding, map[x - 1, y + 1]);
}
}
if (map[x, y + 1].HasElement && map[x, y + 1].GetElementType().GetElementType() == buildingBonurType)
{
bonusBuilding = getBestOne(bonusBuilding, map[x, y + 1]);
}
if (x < frameCount - 1)
{
if (map[x + 1, y + 1].HasElement &&
map[x + 1, y + 1].GetElementType().GetElementType() == buildingBonurType)
{
bonusBuilding = getBestOne(bonusBuilding, map[x + 1, y + 1]);
}
}
}
if (x > 0)
{
if (map[x - 1, y].HasElement && map[x - 1, y].GetElementType().GetElementType() == buildingBonurType)
{
bonusBuilding = getBestOne(bonusBuilding, map[x - 1, y]);
}
}
if (x < frameCount - 1)
{
if (map[x + 1, y].HasElement && map[x + 1, y].GetElementType().GetElementType() == buildingBonurType)
{
bonusBuilding = getBestOne(bonusBuilding, map[x + 1, y]);
}
}
element.BonusBuilding = bonusBuilding;
}
示例6: SpawnFields
public void SpawnFields(Element element)
{
if (element == null || !element.HasElement || element.GetElementType() == null)
return;
Element[,] map = _gameboard.GetMap();
int frameCount = _gameboard.GetFrameCount;
int x = element.PositionX;
int y = element.PositionY;
if (y > 0)
{
if (x > 0)
{
if (!map[x - 1, y - 1].HasElement)
{
buildFields((x - 1), (y - 1));
}
}
if (!map[x, y - 1].HasElement)
{
buildFields(x, y - 1);
}
if (x < frameCount - 1)
{
if (!map[x + 1, y - 1].HasElement)
{
buildFields(x + 1, y - 1);
}
}
}
if (y < frameCount - 1)
{
if (x > 0)
{
if (!map[x - 1, y + 1].HasElement)
{
buildFields(x - 1, y + 1);
}
}
if (!map[x, y + 1].HasElement)
{
buildFields(x, y + 1);
}
if (x < frameCount - 1)
{
if (!map[x + 1, y + 1].HasElement)
{
buildFields(x + 1, y + 1);
}
}
}
if (x > 0)
{
if (!map[x - 1, y].HasElement)
{
buildFields(x - 1, y);
}
}
if (x < frameCount - 1)
{
if (!map[x + 1, y].HasElement)
{
buildFields(x + 1, y);
}
}
}
示例7: AssignRessources
private void AssignRessources(Element element)
{
// check the Element Type
IElementType elementType = element.GetElementType();
if (elementType.IsRessources())
return;
// Get the element Level
int elementLevel = element.Level;
if (elementLevel <= 0)
return;
// Get the base production
ElementProduction elementProduction = elementType.GetElementProduction(elementLevel);
if (elementProduction == null)
return;
UpdateElementTotalBonus(element);
// Get Wood bonus
var woodResearch = _researchHandler.WoodResearchType;
var woodBonus = 0;
if(woodResearch .GetLevel() > 0)
woodBonus = woodResearch.GetResearchBonus(woodResearch.GetLevel()).WoodBonus;
// Get Stone bonus
var stoneResearch = _researchHandler.StoneResearchType;
var stoneBonus = 0;
if (stoneResearch.GetLevel() > 0)
stoneBonus = stoneResearch.GetResearchBonus(stoneResearch.GetLevel()).StoneBonus;
// Get Iron bonus
var ironResearch = _researchHandler.IronResearchType;
var ironBonus = 0;
if (ironResearch.GetLevel() > 0)
ironBonus = ironResearch.GetResearchBonus(ironResearch.GetLevel()).IronBonus;
// Get Food Bonus
var foodResearch = _researchHandler.FoodResearchType;
var foodBonus = 0;
if (foodResearch.GetLevel() > 0)
foodBonus = foodResearch.GetResearchBonus(foodResearch.GetLevel()).FoodBonus;
// Get Gold bonus
var goldResearch = _researchHandler.GoldResearchType;
var goldBonus = 0;
if (goldResearch.GetLevel() > 0)
goldBonus = goldResearch.GetResearchBonus(goldResearch.GetLevel()).GoldBonus;
_ressourcesProduction.WoodQty += CalculateRessource(elementProduction.Wood, element.TotalBonus, woodBonus);
_ressourcesProduction.StoneQty += CalculateRessource(elementProduction.Stone, element.TotalBonus, stoneBonus);
_ressourcesProduction.IronQty += CalculateRessource(elementProduction.Iron, element.TotalBonus, ironBonus);
_ressourcesProduction.FoodQty += CalculateRessource(elementProduction.Food, element.TotalBonus, foodBonus);
_ressourcesProduction.GoldQty += CalculateRessource(elementProduction.Gold, element.TotalBonus, goldBonus);
_ressourcesProduction.ResearchQty += CalculateRessource(elementProduction.Research, element.TotalBonus);
}
示例8: UpdateElementTotalBonus
private static void UpdateElementTotalBonus(Element element)
{
var elementType = element.GetElementType();
// Get number of natural ressources around
var nbNaturalRessources = element.NbRessourcesAround;
var firstBonus = 0;
var secondBonus = 0;
var bonusRessource = ElementType.GetTypeObject(ElementType.GetBonusRessource(elementType.GetElementType()));
if (bonusRessource != null)
{
firstBonus = bonusRessource.GetElementProductionBonus(0).FirstBonus;
secondBonus = bonusRessource.GetElementProductionBonus(0).SecondBonus;
}
var buildingBonus = 0;
var bonusElement = element.BonusBuilding;
if (bonusElement?.GetElementType() != null)
{
var elementProductionBonus =
bonusElement.GetElementType().GetElementProductionBonus(bonusElement.Level);
if (elementProductionBonus != null)
{
buildingBonus = elementProductionBonus.GetFirstNotNull();
}
}
var fieldsCount = element.FieldsCount;
var fieldBonus = new FieldsElementType().GetElementProductionBonus(0);
var bonus = 100;
// Natural ressources bonus
if (nbNaturalRessources > 0)
{
bonus += firstBonus;
if (nbNaturalRessources > 1)
{
bonus += (nbNaturalRessources - 1)*secondBonus;
}
}
// Production increase building bonus
bonus += buildingBonus;
// Fields bonus
if (fieldsCount > 0)
{
bonus += fieldBonus.FirstBonus;
if (fieldsCount > 1)
{
bonus += (fieldsCount - 1) * fieldBonus.SecondBonus;
}
}
// total bonus
element.TotalBonus = bonus;
}
示例9: MoveElementAtGridPos
public bool MoveElementAtGridPos(Element newElem, int i, int j) {
if (!grid.InGrid(i, j))
return false;
if (grid.Get(i, j) != null) {
Element currentElem = grid.Get(i, j);
switch (currentElem.GetElementType()) {
case ElementType.Fire:
switch (newElem.GetElementType()) {
case ElementType.Water:
Destroy(currentElem.gameObject);
Destroy(newElem.gameObject);
grid.Set(i, j, null);
break;
case ElementType.Stone:
SetElementAtGridPos(newElem, i, j);
break;
case ElementType.Ice:
Destroy(currentElem.gameObject);
Destroy(newElem.gameObject);
CreateElementAtGridPos(ElementType.Water, i, j);
break;
default :
Destroy(newElem.gameObject);
break;
}
return true;
case ElementType.Water:
switch (newElem.GetElementType()) {
case ElementType.Fire:
Destroy(currentElem.gameObject);
Destroy(newElem.gameObject);
grid.Set(i, j, null);
break;
case ElementType.Water:
Destroy(newElem.gameObject);
break;
case ElementType.Stone:
SetElementAtGridPos(newElem, i, j);
break;
case ElementType.Plant:
SetElementAtGridPos(newElem, i, j);
break;
case ElementType.Soul:
Destroy(currentElem.gameObject);
Destroy(newElem.gameObject);
CreatePoolOfElement(ElementType.Ice, i, j, 3, true);
break;
}
return true;
case ElementType.Ice:
switch (newElem.GetElementType()) {
case ElementType.Fire:
Destroy(currentElem.gameObject);
Destroy(newElem.gameObject);
CreateElementAtGridPos(ElementType.Water, i, j);
break;
case ElementType.Water:
Destroy(newElem.gameObject);
break;
case ElementType.Stone:
Destroy(currentElem.gameObject);
break;
case ElementType.Plant:
Destroy(newElem.gameObject);
break;
case ElementType.Ice:
Destroy(newElem.gameObject);
break;
}
return true;
case ElementType.Plant:
switch (newElem.GetElementType()) {
case ElementType.Water:
Destroy(newElem.gameObject);
return true;
case ElementType.Fire:
SetElementAtGridPos(newElem, i, j);
return true;
case ElementType.Stone:
SetElementAtGridPos(newElem, i, j);
return true;
case ElementType.Plant:
return false;
case ElementType.Soul:
Destroy(currentElem.gameObject);
Destroy(newElem.gameObject);
CreateElementAtGridPos(ElementType.Life, i, j);
return true;
}
break;
case ElementType.Stone:
switch (newElem.GetElementType()) {
case ElementType.Fire:
Destroy(newElem.gameObject);
return true;
case ElementType.Water:
Destroy(newElem.gameObject);
return true;
case ElementType.Stone:
//.........这里部分代码省略.........
示例10: assingStorage
private void assingStorage(Element element)
{
if (element.GetElementType() != null)
{
ElementStorage elementStorage = element.GetElementType().GetElementStorage(element.Level);
if (elementStorage != null)
{
AddToStorage(elementStorage);
}
}
}
示例11: resetElementNear
private void resetElementNear(Element element)
{
if (element == null || !element.HasElement || element.GetElementType() == null)
return;
Element[,] map = Gameboard.Instance.GetMap();
int frameCount = Gameboard.Instance.GetFrameCount;
int x = element.PositionX;
int y = element.PositionY;
if (y > 0)
{
if (x > 0)
{
if (!map[x - 1, y - 1].HasElement)
{
deleteElement((x - 1), (y - 1));
}
}
if (!map[x, y - 1].HasElement)
{
deleteElement(x, y - 1);
}
if (x < frameCount - 1)
{
if (!map[x + 1, y - 1].HasElement)
{
deleteElement(x + 1, y - 1);
}
}
}
if (y < frameCount - 1)
{
if (x > 0)
{
if (!map[x - 1, y + 1].HasElement)
{
deleteElement(x - 1, y + 1);
}
}
if (!map[x, y + 1].HasElement)
{
deleteElement(x, y + 1);
}
if (x < frameCount - 1)
{
if (!map[x + 1, y + 1].HasElement)
{
deleteElement(x + 1, y + 1);
}
}
}
if (x > 0)
{
if (!map[x - 1, y].HasElement)
{
deleteElement(x - 1, y);
}
}
if (x < frameCount - 1)
{
if (!map[x + 1, y].HasElement)
{
deleteElement(x + 1, y);
}
}
}