mirror of
https://github.com/OMGeeky/andors-trail.git
synced 2026-02-23 15:38:29 +01:00
Actor traits refactoring - Reworked UI for displaying the actor stats tableview.
This commit is contained in:
@@ -1,19 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
>
|
||||
|
||||
<TableRow>
|
||||
<TextView android:text="@string/traitsinfo_base_max_hp" android:layout_marginRight="10sp" />
|
||||
<TextView android:id="@+id/basetraitsinfo_max_hp" />
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TextView android:text="@string/traitsinfo_base_max_ap" android:layout_marginRight="10sp" />
|
||||
<TextView android:id="@+id/basetraitsinfo_max_ap" />
|
||||
</TableRow>
|
||||
|
||||
<include layout="@layout/traitsinfoview" />
|
||||
|
||||
</merge>
|
||||
@@ -15,7 +15,9 @@
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical" >
|
||||
android:orientation="vertical"
|
||||
android:id="@+id/heroinfo_container"
|
||||
>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/heroinfo_title"
|
||||
@@ -32,24 +34,14 @@
|
||||
android:layout_marginBottom="@dimen/section_margin" >
|
||||
|
||||
<TableRow>
|
||||
<TextView android:layout_marginRight="10sp" android:text="@string/heroinfo_level" />
|
||||
<TextView style="@style/traitsinfo_label" android:text="@string/heroinfo_level" />
|
||||
<TextView android:id="@+id/heroinfo_level" android:text="1" />
|
||||
</TableRow>
|
||||
|
||||
<TableRow>
|
||||
<TextView android:layout_marginRight="10sp" android:text="@string/heroinfo_totalexperience" />
|
||||
<TextView style="@style/traitsinfo_label" android:text="@string/heroinfo_totalexperience" />
|
||||
<TextView android:id="@+id/heroinfo_totalexperience" android:text="1" />
|
||||
</TableRow>
|
||||
|
||||
<TableRow>
|
||||
<TextView android:layout_marginRight="10sp" android:text="@string/heroinfo_actionpoints" />
|
||||
<TextView android:id="@+id/heroinfo_ap" android:text="10/10" />
|
||||
</TableRow>
|
||||
|
||||
<TableRow>
|
||||
<TextView android:layout_marginRight="10sp" android:text="@string/actorinfo_movecost" />
|
||||
<TextView android:id="@+id/heroinfo_movecost" android:text="6" />
|
||||
</TableRow>
|
||||
</TableLayout>
|
||||
|
||||
<com.gpl.rpg.AndorsTrail.view.RangeBar
|
||||
@@ -69,38 +61,75 @@
|
||||
android:layout_marginTop="@dimen/section_margin"
|
||||
android:text="@string/actorinfo_currenttraits" />
|
||||
|
||||
<com.gpl.rpg.AndorsTrail.view.TraitsInfoView
|
||||
android:id="@+id/heroinfo_currenttraits"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<com.gpl.rpg.AndorsTrail.view.ItemEffectsView
|
||||
android:id="@+id/heroinfo_itemeffects"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/heroinfo_currentconditions_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/section_margin"
|
||||
android:text="@string/actorinfo_currentconditions" />
|
||||
|
||||
<com.gpl.rpg.AndorsTrail.view.ActorConditionList
|
||||
android:id="@+id/heroinfo_currentconditions"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
<TableLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/actorinfo_stats_table"
|
||||
>
|
||||
<TableRow>
|
||||
<TextView style="@style/traitsinfo_label" android:text="@string/heroinfo_actionpoints" />
|
||||
<TextView android:id="@+id/heroinfo_ap" />
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TextView style="@style/traitsinfo_label" android:text="@string/heroinfo_reequip_cost" />
|
||||
<TextView android:id="@+id/heroinfo_reequip_cost" />
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TextView style="@style/traitsinfo_label" android:text="@string/heroinfo_useitem_cost" />
|
||||
<TextView android:id="@+id/heroinfo_useitem_cost" />
|
||||
</TableRow>
|
||||
<include layout="@layout/traitsinfoview" />
|
||||
</TableLayout>
|
||||
|
||||
<com.gpl.rpg.AndorsTrail.view.ItemEffectsView
|
||||
android:id="@+id/actorinfo_onhiteffects"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/actorinfo_currentconditions"
|
||||
android:id="@+id/actorinfo_currentconditions_title"
|
||||
android:layout_marginTop="@dimen/section_margin"
|
||||
/>
|
||||
<com.gpl.rpg.AndorsTrail.view.ActorConditionList
|
||||
android:id="@+id/actorinfo_currentconditions"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/section_margin"
|
||||
android:text="@string/actorinfo_basetraits" />
|
||||
android:text="@string/actorinfo_basetraits"
|
||||
/>
|
||||
|
||||
<com.gpl.rpg.AndorsTrail.view.BaseTraitsInfoView
|
||||
android:id="@+id/heroinfo_basetraits"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
<TableLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/heroinfo_basestats_table"
|
||||
>
|
||||
<TableRow>
|
||||
<TextView style="@style/traitsinfo_label" android:text="@string/traitsinfo_base_max_hp" />
|
||||
<TextView android:id="@+id/basetraitsinfo_max_hp" />
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TextView style="@style/traitsinfo_label" android:text="@string/traitsinfo_base_max_ap" />
|
||||
<TextView android:id="@+id/basetraitsinfo_max_ap" />
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TextView style="@style/traitsinfo_label" android:text="@string/heroinfo_reequip_cost" />
|
||||
<TextView android:id="@+id/heroinfo_base_reequip_cost" />
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TextView style="@style/traitsinfo_label" android:text="@string/heroinfo_useitem_cost" />
|
||||
<TextView android:id="@+id/heroinfo_base_useitem_cost" />
|
||||
</TableRow>
|
||||
<include layout="@layout/traitsinfoview" />
|
||||
</TableLayout>
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="@dimen/dialog_margin"
|
||||
android:id="@+id/monsterinfo_container"
|
||||
>
|
||||
|
||||
<TextView
|
||||
@@ -54,19 +55,20 @@
|
||||
android:layout_marginBottom="@dimen/section_margin"
|
||||
/>
|
||||
|
||||
<com.gpl.rpg.AndorsTrail.view.TraitsInfoView
|
||||
android:id="@+id/monsterinfo_currenttraits"
|
||||
<TableLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
/>
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/actorinfo_immune_criticals"
|
||||
android:id="@+id/monsterinfo_immune_criticals"
|
||||
/>
|
||||
android:id="@+id/actorinfo_stats_table"
|
||||
>
|
||||
<TableRow>
|
||||
<TextView style="@style/traitsinfo_label" android:text="@string/traitsinfo_base_max_ap" />
|
||||
<TextView android:id="@+id/monsterinfo_max_ap" />
|
||||
</TableRow>
|
||||
<include layout="@layout/traitsinfoview" />
|
||||
</TableLayout>
|
||||
|
||||
<com.gpl.rpg.AndorsTrail.view.ItemEffectsView
|
||||
android:id="@+id/monsterinfo_onhiteffects"
|
||||
android:id="@+id/actorinfo_onhiteffects"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
/>
|
||||
@@ -75,11 +77,11 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/actorinfo_currentconditions"
|
||||
android:id="@+id/monsterinfo_currentconditions_title"
|
||||
android:id="@+id/actorinfo_currentconditions_title"
|
||||
android:layout_marginTop="@dimen/section_margin"
|
||||
/>
|
||||
<com.gpl.rpg.AndorsTrail.view.ActorConditionList
|
||||
android:id="@+id/monsterinfo_currentconditions"
|
||||
android:id="@+id/actorinfo_currentconditions"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
/>
|
||||
|
||||
@@ -1,56 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
>
|
||||
|
||||
<TableRow
|
||||
android:id="@+id/traitsinfo_attack_row1"
|
||||
>
|
||||
<TextView android:text="@string/traitsinfo_attack_cost" android:layout_marginRight="10sp" />
|
||||
<TableRow>
|
||||
<TextView style="@style/traitsinfo_label" android:text="@string/actorinfo_movecost" />
|
||||
<TextView android:id="@+id/traitsinfo_move_cost" />
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TextView style="@style/traitsinfo_label" android:text="@string/traitsinfo_attack_cost" />
|
||||
<TextView android:id="@+id/traitsinfo_attack_cost" />
|
||||
</TableRow>
|
||||
<TableRow
|
||||
android:id="@+id/traitsinfo_attack_row2"
|
||||
>
|
||||
<TextView android:text="@string/traitsinfo_attack_chance" android:layout_marginRight="10sp" />
|
||||
<TableRow android:id="@+id/traitsinfo_attack_chance_row">
|
||||
<TextView style="@style/traitsinfo_label" android:text="@string/traitsinfo_attack_chance" />
|
||||
<TextView android:id="@+id/traitsinfo_attack_chance" />
|
||||
</TableRow>
|
||||
<TableRow
|
||||
android:id="@+id/traitsinfo_attack_row3"
|
||||
>
|
||||
<TextView android:text="@string/traitsinfo_attack_damage" android:layout_marginRight="10sp" />
|
||||
<TableRow android:id="@+id/traitsinfo_attack_damage_row" >
|
||||
<TextView style="@style/traitsinfo_label" android:text="@string/traitsinfo_attack_damage" />
|
||||
<TextView android:id="@+id/traitsinfo_attack_damage" />
|
||||
</TableRow>
|
||||
<TableRow
|
||||
android:id="@+id/traitsinfo_critical_row1"
|
||||
>
|
||||
<TextView android:text="@string/traitsinfo_criticalhit_skill" android:layout_marginRight="10sp" />
|
||||
<TableRow android:id="@+id/traitsinfo_criticalhit_skill_row">
|
||||
<TextView style="@style/traitsinfo_label" android:text="@string/traitsinfo_criticalhit_skill" />
|
||||
<TextView android:id="@+id/traitsinfo_criticalhit_skill" />
|
||||
</TableRow>
|
||||
<TableRow
|
||||
android:id="@+id/traitsinfo_critical_row2"
|
||||
>
|
||||
<TextView android:text="@string/traitsinfo_criticalhit_multiplier" android:layout_marginRight="10sp" />
|
||||
<TableRow android:id="@+id/traitsinfo_criticalhit_multiplier_row">
|
||||
<TextView style="@style/traitsinfo_label" android:text="@string/traitsinfo_criticalhit_multiplier" />
|
||||
<TextView android:id="@+id/traitsinfo_criticalhit_multiplier" />
|
||||
</TableRow>
|
||||
<TableRow
|
||||
android:id="@+id/traitsinfo_critical_row3"
|
||||
>
|
||||
<TextView android:text="@string/traitsinfo_criticalhit_effectivechance" android:layout_marginRight="10sp" />
|
||||
<TableRow android:id="@+id/traitsinfo_criticalhit_effectivechance_row">
|
||||
<TextView style="@style/traitsinfo_label" android:text="@string/traitsinfo_criticalhit_effectivechance" />
|
||||
<TextView android:id="@+id/traitsinfo_criticalhit_effectivechance" />
|
||||
</TableRow>
|
||||
<TableRow
|
||||
android:id="@+id/traitsinfo_defense_row1"
|
||||
>
|
||||
<TextView android:text="@string/traitsinfo_defense_chance" android:layout_marginRight="10sp" />
|
||||
<TextView android:id="@+id/traitsinfo_defense_chance" />
|
||||
<TableRow android:id="@+id/traitsinfo_block_chance_row">
|
||||
<TextView style="@style/traitsinfo_label" android:text="@string/traitsinfo_defense_chance" />
|
||||
<TextView android:id="@+id/traitsinfo_block_chance" />
|
||||
</TableRow>
|
||||
<TableRow
|
||||
android:id="@+id/traitsinfo_defense_row2"
|
||||
>
|
||||
<TextView android:text="@string/traitsinfo_defense_damageresist" android:layout_marginRight="10sp" />
|
||||
<TextView android:id="@+id/traitsinfo_defense_damageresist" />
|
||||
<TableRow android:id="@+id/traitsinfo_damageresist_row">
|
||||
<TextView style="@style/traitsinfo_label" android:text="@string/traitsinfo_defense_damageresist" />
|
||||
<TextView android:id="@+id/traitsinfo_damageresist" />
|
||||
</TableRow>
|
||||
</merge>
|
||||
<TableRow android:id="@+id/traitsinfo_is_immune_to_critical_hits_row">
|
||||
<TextView android:text="@string/actorinfo_immune_criticals" android:layout_span="2" />
|
||||
</TableRow>
|
||||
</merge>
|
||||
@@ -559,5 +559,10 @@
|
||||
<string name="preferences_dialog_overwrite_savegame_title">Confirm overwriting savegames</string>
|
||||
<string name="preferences_dialog_overwrite_savegame">Gives a question about whether you want to overwrite when saving to a savegame slot that already contains a savegame.</string>
|
||||
|
||||
|
||||
<!-- =========================================== -->
|
||||
<!-- Added in v0.7.0 -->
|
||||
|
||||
<string name="heroinfo_reequip_cost">Re-equip cost (AP):</string>
|
||||
<string name="heroinfo_useitem_cost">Use item cost (AP):</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -34,4 +34,8 @@
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
</style>
|
||||
|
||||
<style name="traitsinfo_label" parent="android:Widget.TextView">
|
||||
<item name="android:layout_marginRight">10sp</item>
|
||||
</style>
|
||||
</resources>
|
||||
@@ -127,7 +127,7 @@ public final class Savegames {
|
||||
}
|
||||
|
||||
private static void onWorldLoaded(WorldContext world) {
|
||||
ActorStatsController.recalculatePlayerCombatTraits(world.model.player);
|
||||
ActorStatsController.recalculatePlayerStats(world.model.player);
|
||||
Controller.resetMapsNotRecentlyVisited(world);
|
||||
MovementController.moveBlockedActors(world);
|
||||
}
|
||||
|
||||
@@ -10,8 +10,6 @@ import com.gpl.rpg.AndorsTrail.model.actor.Player;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.Inventory;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnUse;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.ItemType;
|
||||
import com.gpl.rpg.AndorsTrail.view.ActorConditionList;
|
||||
import com.gpl.rpg.AndorsTrail.view.BaseTraitsInfoView;
|
||||
import com.gpl.rpg.AndorsTrail.view.ItemEffectsView;
|
||||
import com.gpl.rpg.AndorsTrail.view.RangeBar;
|
||||
import com.gpl.rpg.AndorsTrail.view.TraitsInfoView;
|
||||
@@ -21,7 +19,9 @@ import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.TableLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
public final class HeroinfoActivity_Stats extends Activity {
|
||||
@@ -31,16 +31,19 @@ public final class HeroinfoActivity_Stats extends Activity {
|
||||
|
||||
private Button levelUpButton;
|
||||
private TextView heroinfo_ap;
|
||||
private TextView heroinfo_movecost;
|
||||
private TraitsInfoView heroinfo_currenttraits;
|
||||
private ItemEffectsView heroinfo_itemeffects;
|
||||
private TextView heroinfo_currentconditions_title;
|
||||
private ActorConditionList heroinfo_currentconditions;
|
||||
private TextView heroinfo_reequip_cost;
|
||||
private TextView heroinfo_useitem_cost;
|
||||
private TextView heroinfo_level;
|
||||
private TextView heroinfo_totalexperience;
|
||||
private TextView basetraitsinfo_max_hp;
|
||||
private TextView basetraitsinfo_max_ap;
|
||||
private TextView heroinfo_base_reequip_cost;
|
||||
private TextView heroinfo_base_useitem_cost;
|
||||
private RangeBar rangebar_hp;
|
||||
private RangeBar rangebar_exp;
|
||||
private BaseTraitsInfoView heroinfo_basetraits;
|
||||
private ItemEffectsView actorinfo_onhiteffects;
|
||||
private TableLayout heroinfo_basestats_table;
|
||||
private ViewGroup heroinfo_container;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
@@ -55,15 +58,20 @@ public final class HeroinfoActivity_Stats extends Activity {
|
||||
TextView tv = (TextView) findViewById(R.id.heroinfo_title);
|
||||
tv.setText(player.getName());
|
||||
world.tileManager.setImageViewTile(tv, player);
|
||||
|
||||
heroinfo_container = (ViewGroup) findViewById(R.id.heroinfo_container);
|
||||
heroinfo_ap = (TextView) findViewById(R.id.heroinfo_ap);
|
||||
heroinfo_movecost = (TextView) findViewById(R.id.heroinfo_movecost);
|
||||
heroinfo_currenttraits = (TraitsInfoView) findViewById(R.id.heroinfo_currenttraits);
|
||||
heroinfo_itemeffects = (ItemEffectsView) findViewById(R.id.heroinfo_itemeffects);
|
||||
heroinfo_currentconditions_title = (TextView) findViewById(R.id.heroinfo_currentconditions_title);
|
||||
heroinfo_currentconditions = (ActorConditionList) findViewById(R.id.heroinfo_currentconditions);
|
||||
heroinfo_reequip_cost = (TextView) findViewById(R.id.heroinfo_reequip_cost);
|
||||
heroinfo_useitem_cost = (TextView) findViewById(R.id.heroinfo_useitem_cost);
|
||||
basetraitsinfo_max_hp = (TextView) findViewById(R.id.basetraitsinfo_max_hp);
|
||||
basetraitsinfo_max_ap = (TextView) findViewById(R.id.basetraitsinfo_max_ap);
|
||||
heroinfo_base_reequip_cost = (TextView) findViewById(R.id.heroinfo_base_reequip_cost);
|
||||
heroinfo_base_useitem_cost = (TextView) findViewById(R.id.heroinfo_base_useitem_cost);
|
||||
heroinfo_level = (TextView) findViewById(R.id.heroinfo_level);
|
||||
heroinfo_totalexperience = (TextView) findViewById(R.id.heroinfo_totalexperience);
|
||||
|
||||
actorinfo_onhiteffects = (ItemEffectsView) findViewById(R.id.actorinfo_onhiteffects);
|
||||
heroinfo_basestats_table = (TableLayout) findViewById(R.id.heroinfo_basestats_table);
|
||||
|
||||
rangebar_hp = (RangeBar) findViewById(R.id.heroinfo_healthbar);
|
||||
rangebar_hp.init(R.drawable.ui_progress_health, R.string.status_hp);
|
||||
rangebar_exp = (RangeBar) findViewById(R.id.heroinfo_expbar);
|
||||
@@ -81,8 +89,6 @@ public final class HeroinfoActivity_Stats extends Activity {
|
||||
levelUpButton.setEnabled(false);
|
||||
}
|
||||
});
|
||||
|
||||
heroinfo_basetraits = (BaseTraitsInfoView) findViewById(R.id.heroinfo_basetraits);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -90,7 +96,6 @@ public final class HeroinfoActivity_Stats extends Activity {
|
||||
super.onResume();
|
||||
updateTraits();
|
||||
updateLevelup();
|
||||
updateConditions();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -105,17 +110,35 @@ public final class HeroinfoActivity_Stats extends Activity {
|
||||
private void updateLevelup() {
|
||||
levelUpButton.setEnabled(player.canLevelup());
|
||||
}
|
||||
|
||||
|
||||
private void updateTraits() {
|
||||
heroinfo_level.setText(Integer.toString(player.getLevel()));
|
||||
heroinfo_totalexperience.setText(Integer.toString(player.getTotalExperience()));
|
||||
heroinfo_ap.setText(player.ap.toString());
|
||||
heroinfo_movecost.setText(Integer.toString(player.getMoveCost()));
|
||||
heroinfo_reequip_cost.setText(Integer.toString(player.getReequipCost()));
|
||||
heroinfo_useitem_cost.setText(Integer.toString(player.getUseItemCost()));
|
||||
basetraitsinfo_max_hp.setText(Integer.toString(player.baseTraits.maxHP));
|
||||
basetraitsinfo_max_ap.setText(Integer.toString(player.baseTraits.maxAP));
|
||||
heroinfo_base_reequip_cost.setText(Integer.toString(player.baseTraits.reequipCost));
|
||||
heroinfo_base_useitem_cost.setText(Integer.toString(player.baseTraits.useItemCost));
|
||||
rangebar_hp.update(player.health);
|
||||
rangebar_exp.update(player.levelExperience);
|
||||
|
||||
heroinfo_currenttraits.update(player);
|
||||
ArrayList<ItemTraits_OnUse> effects_hit = new ArrayList<ItemTraits_OnUse>();
|
||||
TraitsInfoView.update(heroinfo_container, player);
|
||||
TraitsInfoView.updateTraitsTable(
|
||||
heroinfo_basestats_table
|
||||
, player.baseTraits.moveCost
|
||||
, player.baseTraits.attackCost
|
||||
, player.baseTraits.attackChance
|
||||
, player.baseTraits.damagePotential
|
||||
, player.baseTraits.criticalSkill
|
||||
, player.baseTraits.criticalMultiplier
|
||||
, player.baseTraits.blockChance
|
||||
, player.baseTraits.damageResistance
|
||||
, false
|
||||
);
|
||||
|
||||
ArrayList<ItemTraits_OnUse> effects_hit = new ArrayList<ItemTraits_OnUse>();
|
||||
ArrayList<ItemTraits_OnUse> effects_kill = new ArrayList<ItemTraits_OnUse>();
|
||||
for (int i = 0; i < Inventory.NUM_WORN_SLOTS; ++i) {
|
||||
ItemType type = player.inventory.wear[i];
|
||||
@@ -125,18 +148,6 @@ public final class HeroinfoActivity_Stats extends Activity {
|
||||
}
|
||||
if (effects_hit.isEmpty()) effects_hit = null;
|
||||
if (effects_kill.isEmpty()) effects_kill = null;
|
||||
heroinfo_itemeffects.update(null, null, effects_hit, effects_kill, false);
|
||||
heroinfo_basetraits.update(player.baseTraits);
|
||||
actorinfo_onhiteffects.update(null, null, effects_hit, effects_kill, false);
|
||||
}
|
||||
|
||||
private void updateConditions() {
|
||||
if (player.conditions.isEmpty()) {
|
||||
heroinfo_currentconditions_title.setVisibility(View.GONE);
|
||||
heroinfo_currentconditions.setVisibility(View.GONE);
|
||||
} else {
|
||||
heroinfo_currentconditions_title.setVisibility(View.VISIBLE);
|
||||
heroinfo_currentconditions.setVisibility(View.VISIBLE);
|
||||
heroinfo_currentconditions.update(player.conditions);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,7 +138,6 @@ public final class LevelUpActivity extends Activity {
|
||||
player.baseTraits.maxHP += hpIncrease;
|
||||
player.health.current += hpIncrease;
|
||||
|
||||
player.recalculateLevelExperience();
|
||||
ActorStatsController.recalculatePlayerCombatTraits(player);
|
||||
ActorStatsController.recalculatePlayerStats(player);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.CombatController;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
|
||||
import com.gpl.rpg.AndorsTrail.view.ActorConditionList;
|
||||
import com.gpl.rpg.AndorsTrail.view.ItemEffectsView;
|
||||
import com.gpl.rpg.AndorsTrail.view.RangeBar;
|
||||
import com.gpl.rpg.AndorsTrail.view.TraitsInfoView;
|
||||
@@ -14,6 +13,7 @@ import com.gpl.rpg.AndorsTrail.view.TraitsInfoView;
|
||||
import android.app.Activity;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.Window;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.widget.Button;
|
||||
@@ -21,16 +21,16 @@ import android.widget.TextView;
|
||||
|
||||
public final class MonsterInfoActivity extends Activity {
|
||||
|
||||
private TextView monsterinfo_title;
|
||||
private TextView monsterinfo_difficulty;
|
||||
private TraitsInfoView monsterinfo_currenttraits;
|
||||
private ItemEffectsView monsterinfo_onhiteffects;
|
||||
private TextView monsterinfo_currentconditions_title;
|
||||
private TextView monsterinfo_immune_criticals;
|
||||
private ActorConditionList monsterinfo_currentconditions;
|
||||
private RangeBar hp;
|
||||
private WorldContext world;
|
||||
|
||||
private TextView monsterinfo_title;
|
||||
private TextView monsterinfo_difficulty;
|
||||
private ItemEffectsView monsterinfo_onhiteffects;
|
||||
private RangeBar hp;
|
||||
private ViewGroup monsterinfo_container;
|
||||
private TextView monsterinfo_max_ap;
|
||||
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
@@ -43,7 +43,7 @@ public final class MonsterInfoActivity extends Activity {
|
||||
|
||||
monsterinfo_title = (TextView) findViewById(R.id.monsterinfo_title);
|
||||
monsterinfo_difficulty = (TextView) findViewById(R.id.monsterinfo_difficulty);
|
||||
monsterinfo_immune_criticals = (TextView) findViewById(R.id.monsterinfo_immune_criticals);
|
||||
monsterinfo_max_ap = (TextView) findViewById(R.id.monsterinfo_max_ap);
|
||||
|
||||
Button b = (Button) findViewById(R.id.monsterinfo_close);
|
||||
b.setOnClickListener(new OnClickListener() {
|
||||
@@ -53,12 +53,10 @@ public final class MonsterInfoActivity extends Activity {
|
||||
}
|
||||
});
|
||||
|
||||
monsterinfo_currenttraits = (TraitsInfoView) findViewById(R.id.monsterinfo_currenttraits);
|
||||
monsterinfo_onhiteffects = (ItemEffectsView) findViewById(R.id.monsterinfo_onhiteffects);
|
||||
monsterinfo_currentconditions_title = (TextView) findViewById(R.id.monsterinfo_currentconditions_title);
|
||||
monsterinfo_currentconditions = (ActorConditionList) findViewById(R.id.monsterinfo_currentconditions);
|
||||
monsterinfo_onhiteffects = (ItemEffectsView) findViewById(R.id.actorinfo_onhiteffects);
|
||||
hp = (RangeBar) findViewById(R.id.monsterinfo_healthbar);
|
||||
hp.init(R.drawable.ui_progress_health, R.string.status_hp);
|
||||
monsterinfo_container = (ViewGroup) findViewById(R.id.monsterinfo_container);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -73,7 +71,6 @@ public final class MonsterInfoActivity extends Activity {
|
||||
|
||||
updateTitle(monster);
|
||||
updateTraits(monster);
|
||||
updateConditions(monster);
|
||||
}
|
||||
|
||||
private void updateTitle(Monster monster) {
|
||||
@@ -83,7 +80,7 @@ public final class MonsterInfoActivity extends Activity {
|
||||
}
|
||||
|
||||
private void updateTraits(Monster monster) {
|
||||
monsterinfo_currenttraits.update(monster);
|
||||
TraitsInfoView.update(monsterinfo_container, monster);
|
||||
monsterinfo_onhiteffects.update(
|
||||
null,
|
||||
null,
|
||||
@@ -91,7 +88,7 @@ public final class MonsterInfoActivity extends Activity {
|
||||
null,
|
||||
false);
|
||||
hp.update(monster.health);
|
||||
monsterinfo_immune_criticals.setVisibility(monster.isImmuneToCriticalHits() ? View.VISIBLE : View.GONE);
|
||||
monsterinfo_max_ap.setText(Integer.toString(monster.ap.max));
|
||||
}
|
||||
|
||||
public static int getMonsterDifficultyResource(WorldContext world, Monster monster) {
|
||||
@@ -103,15 +100,4 @@ public final class MonsterInfoActivity extends Activity {
|
||||
else if (difficulty == 0) return R.string.monster_difficulty_impossible;
|
||||
else return R.string.monster_difficulty_veryhard;
|
||||
}
|
||||
|
||||
private void updateConditions(Monster monster) {
|
||||
if (monster.conditions.isEmpty()) {
|
||||
monsterinfo_currentconditions_title.setVisibility(View.GONE);
|
||||
monsterinfo_currentconditions.setVisibility(View.GONE);
|
||||
} else {
|
||||
monsterinfo_currentconditions_title.setVisibility(View.VISIBLE);
|
||||
monsterinfo_currentconditions.setVisibility(View.VISIBLE);
|
||||
monsterinfo_currentconditions.update(monster.conditions);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -185,8 +185,9 @@ public class ActorStatsController {
|
||||
if (actor.damagePotential.max < 0) actor.damagePotential.set(0, 0);
|
||||
}
|
||||
|
||||
public static void recalculatePlayerCombatTraits(Player player) {
|
||||
public static void recalculatePlayerStats(Player player) {
|
||||
player.resetStatsToBaseTraits();
|
||||
player.recalculateLevelExperience();
|
||||
ItemController.applyInventoryEffects(player);
|
||||
SkillController.applySkillEffects(player);
|
||||
applyEffectsFromCurrentConditions(player);
|
||||
@@ -201,7 +202,7 @@ public class ActorStatsController {
|
||||
monster.ap.capAtMax();
|
||||
}
|
||||
private static void recalculateActorCombatTraits(Actor actor) {
|
||||
if (actor.isPlayer) recalculatePlayerCombatTraits((Player) actor);
|
||||
if (actor.isPlayer) recalculatePlayerStats((Player) actor);
|
||||
else recalculateMonsterCombatTraits((Monster) actor);
|
||||
}
|
||||
|
||||
@@ -232,7 +233,7 @@ public class ActorStatsController {
|
||||
player.conditions.remove(i);
|
||||
player.conditionListener.onActorConditionRemoved(player, c);
|
||||
}
|
||||
recalculatePlayerCombatTraits(player);
|
||||
recalculatePlayerStats(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ public final class Controller {
|
||||
public static void playerRested(final WorldContext world, MapObject area) {
|
||||
final Player player = world.model.player;
|
||||
ActorStatsController.removeAllTemporaryConditions(player);
|
||||
ActorStatsController.recalculatePlayerCombatTraits(player);
|
||||
ActorStatsController.recalculatePlayerStats(player);
|
||||
player.setMaxAP();
|
||||
player.setMaxHP();
|
||||
if (area != null) {
|
||||
|
||||
@@ -53,7 +53,7 @@ public final class ItemController {
|
||||
|
||||
player.inventory.wear[slot] = type;
|
||||
ActorStatsController.addConditionsFromEquippedItem(player, type);
|
||||
ActorStatsController.recalculatePlayerCombatTraits(player);
|
||||
ActorStatsController.recalculatePlayerStats(player);
|
||||
}
|
||||
|
||||
public void unequipSlot(ItemType type, int slot) {
|
||||
@@ -66,7 +66,7 @@ public final class ItemController {
|
||||
}
|
||||
|
||||
unequipSlot(player, slot);
|
||||
ActorStatsController.recalculatePlayerCombatTraits(player);
|
||||
ActorStatsController.recalculatePlayerStats(player);
|
||||
}
|
||||
|
||||
private static void unequipSlot(Player player, int slot) {
|
||||
|
||||
@@ -60,9 +60,6 @@ public class Actor {
|
||||
public ItemTraits_OnUse[] getOnHitEffects() { return onHitEffects; }
|
||||
public List<ItemTraits_OnUse> getOnHitEffectsAsList() { return onHitEffects == null ? null : Arrays.asList(onHitEffects); }
|
||||
|
||||
public boolean hasAttackChanceEffect_() { return getAttackChance() != 0; }
|
||||
public boolean hasAttackDamageEffect_() { return getDamagePotential().max != 0; }
|
||||
public boolean hasBlockEffect_() { return getBlockChance() != 0; }
|
||||
public boolean hasCriticalSkillEffect() { return getCriticalSkill() != 0; }
|
||||
public boolean hasCriticalMultiplierEffect() { float m = getCriticalMultiplier(); return m != 0 && m != 1; }
|
||||
public boolean hasCriticalAttacks() { return hasCriticalSkillEffect() && hasCriticalMultiplierEffect(); }
|
||||
@@ -75,7 +72,6 @@ public class Actor {
|
||||
if (v < 0) return 0;
|
||||
return v;
|
||||
}
|
||||
|
||||
|
||||
public boolean isDead() {
|
||||
return health.current <= 0;
|
||||
|
||||
@@ -126,7 +126,6 @@ public final class Player extends Actor {
|
||||
this.skillLevels.clear();
|
||||
this.availableSkillIncreases = 0;
|
||||
this.alignments.clear();
|
||||
recalculateLevelExperience();
|
||||
|
||||
Loot startItems = new Loot();
|
||||
dropLists.getDropList(DropListCollection.DROPLIST_STARTITEMS).createRandomLoot(startItems, this);
|
||||
@@ -140,7 +139,7 @@ public final class Player extends Actor {
|
||||
this.spawnPlace = "rest";
|
||||
}
|
||||
|
||||
ActorStatsController.recalculatePlayerCombatTraits(this);
|
||||
ActorStatsController.recalculatePlayerStats(this);
|
||||
}
|
||||
|
||||
public boolean hasExactQuestProgress(QuestProgress progress) { return hasExactQuestProgress(progress.questID, progress.progress); }
|
||||
@@ -193,7 +192,7 @@ public final class Player extends Actor {
|
||||
}
|
||||
public void addSkillLevel(int skillID) {
|
||||
skillLevels.put(skillID, skillLevels.get(skillID) + 1);
|
||||
ActorStatsController.recalculatePlayerCombatTraits(this);
|
||||
ActorStatsController.recalculatePlayerStats(this);
|
||||
}
|
||||
public boolean nextLevelAddsNewSkillpoint() {
|
||||
return thisLevelAddsNewSkillpoint(level + 1);
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
package com.gpl.rpg.AndorsTrail.view;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Player.PlayerBaseTraits;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.widget.TextView;
|
||||
|
||||
public final class BaseTraitsInfoView extends TraitsInfoView {
|
||||
private final TextView basetraitsinfo_max_hp;
|
||||
private final TextView basetraitsinfo_max_ap;
|
||||
|
||||
public BaseTraitsInfoView(Context context, AttributeSet attr) {
|
||||
super(context, attr, R.layout.basetraitsinfoview);
|
||||
|
||||
basetraitsinfo_max_hp = (TextView) findViewById(R.id.basetraitsinfo_max_hp);
|
||||
basetraitsinfo_max_ap = (TextView) findViewById(R.id.basetraitsinfo_max_ap);
|
||||
}
|
||||
|
||||
public void update(PlayerBaseTraits traits) {
|
||||
super.update(
|
||||
traits.attackCost
|
||||
,traits.attackChance
|
||||
,traits.damagePotential
|
||||
,traits.criticalSkill
|
||||
,traits.criticalMultiplier
|
||||
,traits.blockChance
|
||||
,traits.damageResistance);
|
||||
basetraitsinfo_max_hp.setText(Integer.toString(traits.maxHP));
|
||||
basetraitsinfo_max_ap.setText(Integer.toString(traits.maxAP));
|
||||
}
|
||||
}
|
||||
@@ -4,125 +4,126 @@ import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Actor;
|
||||
import com.gpl.rpg.AndorsTrail.util.Range;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TableLayout;
|
||||
import android.widget.TableRow;
|
||||
import android.widget.TextView;
|
||||
|
||||
public class TraitsInfoView extends TableLayout {
|
||||
private final TableRow traitsinfo_attack_row1;
|
||||
private final TableRow traitsinfo_attack_row2;
|
||||
private final TableRow traitsinfo_attack_row3;
|
||||
private final TableRow traitsinfo_critical_row1;
|
||||
private final TableRow traitsinfo_critical_row2;
|
||||
private final TableRow traitsinfo_critical_row3;
|
||||
private final TableRow traitsinfo_defense_row1;
|
||||
private final TableRow traitsinfo_defense_row2;
|
||||
private final TextView traitsinfo_attack_cost;
|
||||
private final TextView traitsinfo_attack_chance;
|
||||
private final TextView traitsinfo_attack_damage;
|
||||
private final TextView traitsinfo_criticalhit_skill;
|
||||
private final TextView traitsinfo_criticalhit_multiplier;
|
||||
private final TextView traitsinfo_criticalhit_effectivechance;
|
||||
private final TextView traitsinfo_defense_chance;
|
||||
private final TextView traitsinfo_defense_damageresist;
|
||||
public final class TraitsInfoView {
|
||||
|
||||
public TraitsInfoView(Context context, AttributeSet attr) {
|
||||
this(context, attr, R.layout.traitsinfoview);
|
||||
}
|
||||
|
||||
public TraitsInfoView(Context context, AttributeSet attr, int layoutResourceID) {
|
||||
super(context, attr);
|
||||
setFocusable(false);
|
||||
inflate(context, layoutResourceID, this);
|
||||
|
||||
traitsinfo_attack_row1 = (TableRow) findViewById(R.id.traitsinfo_attack_row1);
|
||||
traitsinfo_attack_row2 = (TableRow) findViewById(R.id.traitsinfo_attack_row2);
|
||||
traitsinfo_attack_row3 = (TableRow) findViewById(R.id.traitsinfo_attack_row3);
|
||||
traitsinfo_critical_row1 = (TableRow) findViewById(R.id.traitsinfo_critical_row1);
|
||||
traitsinfo_critical_row2 = (TableRow) findViewById(R.id.traitsinfo_critical_row2);
|
||||
traitsinfo_critical_row3 = (TableRow) findViewById(R.id.traitsinfo_critical_row3);
|
||||
traitsinfo_defense_row1 = (TableRow) findViewById(R.id.traitsinfo_defense_row1);
|
||||
traitsinfo_defense_row2 = (TableRow) findViewById(R.id.traitsinfo_defense_row2);
|
||||
traitsinfo_attack_cost = (TextView) findViewById(R.id.traitsinfo_attack_cost);
|
||||
traitsinfo_attack_chance = (TextView) findViewById(R.id.traitsinfo_attack_chance);
|
||||
traitsinfo_attack_damage = (TextView) findViewById(R.id.traitsinfo_attack_damage);
|
||||
traitsinfo_criticalhit_skill = (TextView) findViewById(R.id.traitsinfo_criticalhit_skill);
|
||||
traitsinfo_criticalhit_multiplier = (TextView) findViewById(R.id.traitsinfo_criticalhit_multiplier);
|
||||
traitsinfo_criticalhit_effectivechance = (TextView) findViewById(R.id.traitsinfo_criticalhit_effectivechance);
|
||||
traitsinfo_defense_chance = (TextView) findViewById(R.id.traitsinfo_defense_chance);
|
||||
traitsinfo_defense_damageresist = (TextView) findViewById(R.id.traitsinfo_defense_damageresist);
|
||||
}
|
||||
|
||||
public void update(Actor actor) {
|
||||
update(
|
||||
actor.getAttackCost()
|
||||
public static void update(ViewGroup group, Actor actor) {
|
||||
TableLayout actorinfo_stats_table = (TableLayout) group.findViewById(R.id.actorinfo_stats_table);
|
||||
|
||||
updateTraitsTable(
|
||||
actorinfo_stats_table
|
||||
,actor.getMoveCost()
|
||||
,actor.getAttackCost()
|
||||
,actor.getAttackChance()
|
||||
,actor.getDamagePotential()
|
||||
,actor.getCriticalSkill()
|
||||
,actor.getCriticalMultiplier()
|
||||
,actor.getBlockChance()
|
||||
,actor.getDamageResistance());
|
||||
,actor.getDamageResistance()
|
||||
,actor.isImmuneToCriticalHits());
|
||||
|
||||
TextView actorinfo_currentconditions_title = (TextView) group.findViewById(R.id.actorinfo_currentconditions_title);
|
||||
ActorConditionList actorinfo_currentconditions = (ActorConditionList) group.findViewById(R.id.actorinfo_currentconditions);
|
||||
if (actor.conditions.isEmpty()) {
|
||||
actorinfo_currentconditions_title.setVisibility(View.GONE);
|
||||
actorinfo_currentconditions.setVisibility(View.GONE);
|
||||
} else {
|
||||
actorinfo_currentconditions_title.setVisibility(View.VISIBLE);
|
||||
actorinfo_currentconditions.setVisibility(View.VISIBLE);
|
||||
actorinfo_currentconditions.update(actor.conditions);
|
||||
}
|
||||
}
|
||||
|
||||
public void update(
|
||||
int attackCost
|
||||
public static void updateTraitsTable(
|
||||
ViewGroup group
|
||||
,int moveCost
|
||||
,int attackCost
|
||||
,int attackChance
|
||||
,Range damagePotential
|
||||
,int criticalSkill
|
||||
,float criticalMultiplier
|
||||
,int blockChance
|
||||
,int damageResistance
|
||||
) {
|
||||
if (attackCost != 0) {
|
||||
traitsinfo_attack_row1.setVisibility(View.VISIBLE);
|
||||
traitsinfo_attack_cost.setText(Integer.toString(attackCost));
|
||||
} else {
|
||||
traitsinfo_attack_row1.setVisibility(View.GONE);
|
||||
}
|
||||
,boolean isImmuneToCriticalHits
|
||||
) {
|
||||
TableRow row;
|
||||
TextView tv;
|
||||
|
||||
tv = (TextView) group.findViewById(R.id.traitsinfo_move_cost);
|
||||
tv.setText(Integer.toString(moveCost));
|
||||
|
||||
tv = (TextView) group.findViewById(R.id.traitsinfo_attack_cost);
|
||||
tv.setText(Integer.toString(attackCost));
|
||||
|
||||
row = (TableRow) group.findViewById(R.id.traitsinfo_attack_chance_row);
|
||||
if (attackChance != 0) {
|
||||
traitsinfo_attack_row2.setVisibility(View.VISIBLE);
|
||||
traitsinfo_attack_chance.setText(Integer.toString(attackChance) + "%");
|
||||
row.setVisibility(View.VISIBLE);
|
||||
tv = (TextView) group.findViewById(R.id.traitsinfo_attack_chance);
|
||||
tv.setText(Integer.toString(attackChance) + "%");
|
||||
} else {
|
||||
traitsinfo_attack_row2.setVisibility(View.GONE);
|
||||
row.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
row = (TableRow) group.findViewById(R.id.traitsinfo_attack_damage_row);
|
||||
if (damagePotential != null && damagePotential.max != 0) {
|
||||
traitsinfo_attack_row3.setVisibility(View.VISIBLE);
|
||||
traitsinfo_attack_damage.setText(damagePotential.toMinMaxString());
|
||||
row.setVisibility(View.VISIBLE);
|
||||
tv = (TextView) group.findViewById(R.id.traitsinfo_attack_damage);
|
||||
tv.setText(damagePotential.toMinMaxString());
|
||||
} else {
|
||||
traitsinfo_attack_row3.setVisibility(View.GONE);
|
||||
row.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
row = (TableRow) group.findViewById(R.id.traitsinfo_criticalhit_skill_row);
|
||||
if (criticalSkill != 0) {
|
||||
traitsinfo_critical_row1.setVisibility(View.VISIBLE);
|
||||
traitsinfo_criticalhit_skill.setText(Integer.toString(criticalSkill));
|
||||
row.setVisibility(View.VISIBLE);
|
||||
tv = (TextView) group.findViewById(R.id.traitsinfo_criticalhit_skill);
|
||||
tv.setText(Integer.toString(criticalSkill));
|
||||
} else {
|
||||
traitsinfo_critical_row1.setVisibility(View.GONE);
|
||||
row.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
row = (TableRow) group.findViewById(R.id.traitsinfo_criticalhit_multiplier_row);
|
||||
if (criticalMultiplier != 0 && criticalMultiplier != 1) {
|
||||
traitsinfo_critical_row2.setVisibility(View.VISIBLE);
|
||||
traitsinfo_criticalhit_multiplier.setText(Float.toString(criticalMultiplier));
|
||||
row.setVisibility(View.VISIBLE);
|
||||
tv = (TextView) group.findViewById(R.id.traitsinfo_criticalhit_multiplier);
|
||||
tv.setText(Float.toString(criticalMultiplier));
|
||||
} else {
|
||||
traitsinfo_critical_row2.setVisibility(View.GONE);
|
||||
row.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
row = (TableRow) group.findViewById(R.id.traitsinfo_criticalhit_effectivechance_row);
|
||||
if (criticalSkill != 0 && criticalMultiplier != 0 && criticalMultiplier != 1) {
|
||||
traitsinfo_critical_row3.setVisibility(View.VISIBLE);
|
||||
traitsinfo_criticalhit_effectivechance.setText(Integer.toString(Actor.getEffectiveCriticalChance(criticalSkill)) + "%");
|
||||
row.setVisibility(View.VISIBLE);
|
||||
tv = (TextView) group.findViewById(R.id.traitsinfo_criticalhit_effectivechance);
|
||||
tv.setText(Integer.toString(Actor.getEffectiveCriticalChance(criticalSkill)) + "%");
|
||||
} else {
|
||||
traitsinfo_critical_row3.setVisibility(View.GONE);
|
||||
row.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
row = (TableRow) group.findViewById(R.id.traitsinfo_block_chance_row);
|
||||
if (blockChance != 0) {
|
||||
traitsinfo_defense_row1.setVisibility(View.VISIBLE);
|
||||
traitsinfo_defense_chance.setText(Integer.toString(blockChance) + "%");
|
||||
row.setVisibility(View.VISIBLE);
|
||||
tv = (TextView) group.findViewById(R.id.traitsinfo_block_chance);
|
||||
tv.setText(Integer.toString(blockChance) + "%");
|
||||
} else {
|
||||
traitsinfo_defense_row1.setVisibility(View.GONE);
|
||||
row.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
row = (TableRow) group.findViewById(R.id.traitsinfo_damageresist_row);
|
||||
if (damageResistance != 0) {
|
||||
traitsinfo_defense_row2.setVisibility(View.VISIBLE);
|
||||
traitsinfo_defense_damageresist.setText(Integer.toString(damageResistance));
|
||||
row.setVisibility(View.VISIBLE);
|
||||
tv = (TextView) group.findViewById(R.id.traitsinfo_damageresist);
|
||||
tv.setText(Integer.toString(damageResistance));
|
||||
} else {
|
||||
traitsinfo_defense_row2.setVisibility(View.GONE);
|
||||
row.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
row = (TableRow) group.findViewById(R.id.traitsinfo_is_immune_to_critical_hits_row);
|
||||
row.setVisibility(isImmuneToCriticalHits ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user