diff --git a/MyApplication/dependencies.gradle b/MyApplication/dependencies.gradle index 285699a..630a4ed 100644 --- a/MyApplication/dependencies.gradle +++ b/MyApplication/dependencies.gradle @@ -1,13 +1,13 @@ ext.versions = [ - androidGradlePlugin : '3.3.1', + androidGradlePlugin : '3.4.0', gradleVersionsPlugin : '0.14.0', buildTools : '25.0.2', compileSdk : 25, moxy : '1.5.1', - butterKnife : '8.5.1', + butterKnife : '10.1.0', supportLibs : '25.3.1', supportConstraintLayout : '1.0.1', diff --git a/app/build.gradle b/app/build.gradle index 9e83604..8b49a75 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,6 +1,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion 28 + buildToolsVersion '28.0.3' defaultConfig { applicationId "com.npgames.insight" minSdkVersion 16 @@ -53,4 +54,7 @@ dependencies { implementation 'com.uncopt:android.justified:1.0' implementation 'com.android.support.constraint:constraint-layout:1.0.2' + + //MaterialTapTargetPrompt + implementation 'uk.co.samuelwall:material-tap-target-prompt:2.14.0' } diff --git a/app/src/main/java/com/npgames/insight/ui/all/fragments/infoDialog/InfoDialog.java b/app/src/main/java/com/npgames/insight/ui/all/fragments/infoDialog/InfoDialog.java new file mode 100644 index 0000000..d7ac829 --- /dev/null +++ b/app/src/main/java/com/npgames/insight/ui/all/fragments/infoDialog/InfoDialog.java @@ -0,0 +1,91 @@ +package com.npgames.insight.ui.all.fragments.infoDialog; + +import android.app.ActionBar; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v4.app.DialogFragment; +import android.view.LayoutInflater; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import com.npgames.insight.R; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class InfoDialog extends DialogFragment { + public static final String INFO_DIALOG_TAG = "INFO_DIALOG_TAG"; + public static String MESSAGE = "MESSAGE"; + + @BindView(R.id.bottom_action_confirm_dialog_body_text_view) + protected TextView bodyTextView; + @BindView(R.id.bottom_action_confirm_dialog_deny_button_text_view) + protected TextView denyButtonTextView; + + + @Override + public void onStart() { + super.onStart(); + getDialog().getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.MATCH_PARENT); + } + + @Nullable + @Override + public View onCreateView(@NonNull final LayoutInflater inflater, + @Nullable final ViewGroup container, + @Nullable final Bundle savedInstanceState) { + final View view = inflater.inflate(R.layout.fragment_info_dialog, container); + ButterKnife.bind(this, view); + return view; + } + + @Override + public void onViewCreated(@NonNull final View view, @Nullable final Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + final String bodyText = getArguments().getString(MESSAGE); + bodyTextView.setText(bodyText); + denyButtonTextView.setOnTouchListener(denyButtonTouchListener); + + getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + getDialog().setCancelable(false); + getDialog().setCanceledOnTouchOutside(false); + getDialog().setOnKeyListener((dialogInterface, i, keyEvent) -> { +/* if (i == KeyEvent.KEYCODE_BACK) { + deathDialogListener.onClose(); + }*/ + + return true; + }); + } + + private View.OnTouchListener denyButtonTouchListener = new View.OnTouchListener() { + @Override + public boolean onTouch(final View view, final MotionEvent motionEvent) { + switch(motionEvent.getAction()) { + case MotionEvent.ACTION_DOWN: + final Drawable pressedDenyButton = getResources().getDrawable(R.drawable.confirm_dialog_button_active); + denyButtonTextView.setBackground(pressedDenyButton); + break; + + case MotionEvent.ACTION_UP: + view.performClick(); + dismiss(); + + case MotionEvent.ACTION_CANCEL: + final Drawable defaultDenyButton = getResources().getDrawable(R.drawable.confirm_dialog_button); + denyButtonTextView.setBackground(defaultDenyButton); + + break; + } + return true; + } + }; +} diff --git a/app/src/main/java/com/npgames/insight/ui/book/top_panel/StatsInfoDialog.java b/app/src/main/java/com/npgames/insight/ui/book/top_panel/StatsInfoDialog.java new file mode 100644 index 0000000..e495810 --- /dev/null +++ b/app/src/main/java/com/npgames/insight/ui/book/top_panel/StatsInfoDialog.java @@ -0,0 +1,88 @@ +package com.npgames.insight.ui.book.top_panel; + +import android.app.ActionBar; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.constraint.ConstraintLayout; +import android.support.constraint.ConstraintSet; +import android.support.v4.app.DialogFragment; +import android.support.v4.view.ViewCompat; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.TextView; + +import com.npgames.insight.R; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class StatsInfoDialog extends DialogFragment { + + public static final String STATS_INFO_DIALOG_TAG = "STATS_INFO_DIALOG_TAG"; + + @BindView(R.id.tip_dialog_root) + ConstraintLayout mConstraintLayout; + + @Override + public void onStart() { + super.onStart(); + + getDialog().getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); + getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + } + + @Nullable + @Override + public View onCreateView(final @NonNull LayoutInflater inflater, final @Nullable ViewGroup container, + final @Nullable Bundle savedInstanceState) { + final View statsInfoDialog = inflater.inflate(R.layout.fragment_tip_dialog, container); + ButterKnife.bind(this, statsInfoDialog); + + final Window window = getDialog().getWindow(); + WindowManager.LayoutParams windowParams = window.getAttributes(); + windowParams.dimAmount = 0.0f; + window.setAttributes(windowParams); + + + final TextView textView = new TextView(getActivity()); + + ConstraintLayout.LayoutParams layoutParams = new ConstraintLayout.LayoutParams( + ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); + + textView.setId(ViewCompat.generateViewId()); + textView.setLayoutParams(layoutParams); + + Log.d("TestPish", "width "+getArguments().getInt("WIDTH")); + Log.d("TestPish", "height "+getArguments().getInt("HEIGHT")); + + Log.d("TestPish", "X "+getArguments().getFloat("X")); + Log.d("TestPish", "Y "+getArguments().getFloat("Y")); +/* + textView.setWidth(getArguments().getInt("WIDTH")); + textView.setHeight(getArguments().getInt("HEIGHT"));*/ + + textView.setLeft((int) getArguments().getFloat("X")); + textView.setTop((int) getArguments().getFloat("Y")); + textView.setTextAppearance(getContext(), R.style.D); + textView.setText(getArguments().getString("TEXT")); + textView.setTextSize(getArguments().getFloat("TEXT_SIZE")); + + final ConstraintSet set = new ConstraintSet(); + mConstraintLayout.addView(textView); + set.clone(mConstraintLayout); + set.connect(textView.getId(), ConstraintSet.TOP, mConstraintLayout.getId(), ConstraintSet.TOP, 0); + set.connect(textView.getId(), ConstraintSet.END, mConstraintLayout.getId(), ConstraintSet.END, 0); + set.applyTo(mConstraintLayout); + + mConstraintLayout.invalidate(); + + return statsInfoDialog; + } +} diff --git a/app/src/main/java/com/npgames/insight/ui/book/top_panel/TipPromptBackground.java b/app/src/main/java/com/npgames/insight/ui/book/top_panel/TipPromptBackground.java new file mode 100644 index 0000000..d2d0c2b --- /dev/null +++ b/app/src/main/java/com/npgames/insight/ui/book/top_panel/TipPromptBackground.java @@ -0,0 +1,44 @@ +package com.npgames.insight.ui.book.top_panel; + +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.Rect; +import android.graphics.RectF; +import android.support.annotation.NonNull; + +import uk.co.samuelwall.materialtaptargetprompt.extras.PromptOptions; +import uk.co.samuelwall.materialtaptargetprompt.extras.backgrounds.FullscreenPromptBackground; + +public class TipPromptBackground extends FullscreenPromptBackground { + + public TipPromptBackground() { + + } + + @Override + public void prepare(@NonNull PromptOptions options, boolean clipToBounds, + @NonNull Rect clipBounds) { + super.prepare(options, clipToBounds, clipBounds); + + + } + + @Override + public void update(@NonNull PromptOptions prompt, float revealModifier, float alphaModifier) { + super.update(prompt, revealModifier, alphaModifier); + } + + @Override + public void draw(@NonNull Canvas canvas) { + super.draw(canvas); + + final RectF dimBounds = new RectF(); + dimBounds.set(0, 0, getDisplayMetrics().widthPixels, getDisplayMetrics().heightPixels); + + final Paint dimPaint = new Paint(); + dimPaint.setColor(Color.BLACK); + + canvas.drawRect(dimBounds, dimPaint); + } +} diff --git a/app/src/main/java/com/npgames/insight/ui/book/top_panel/TipPromptFocal.java b/app/src/main/java/com/npgames/insight/ui/book/top_panel/TipPromptFocal.java new file mode 100644 index 0000000..9c6eab3 --- /dev/null +++ b/app/src/main/java/com/npgames/insight/ui/book/top_panel/TipPromptFocal.java @@ -0,0 +1,76 @@ +package com.npgames.insight.ui.book.top_panel; + +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.RectF; +import android.support.annotation.NonNull; +import android.util.Log; +import android.view.View; + +import uk.co.samuelwall.materialtaptargetprompt.extras.PromptFocal; +import uk.co.samuelwall.materialtaptargetprompt.extras.PromptOptions; + +public class TipPromptFocal extends PromptFocal { + @Override + public void update(@NonNull PromptOptions options, float revealModifier, float alphaModifier) { + + } + + @Override + public void draw(final @NonNull Canvas canvas) { + + final RectF dimBounds = new RectF(); + dimBounds.set(left, top, left + width, top+height); + + final Paint dimPaint = new Paint(); + dimPaint.setColor(Color.RED); + + canvas.drawRect(dimBounds, dimPaint); + } + + @Override + public boolean contains(float x, float y) { + return false; + } + + @Override + public void setColour(int colour) { + + } + + @NonNull + @Override + public RectF getBounds() { + return null; + } + + private int width; + private int height; + private float left; + private float top; + + @Override + public void prepare(final @NonNull PromptOptions options, final @NonNull View target, + final int[] promptViewPosition) { + Log.d("TestPish", "Ok counstructor"); + width = target.getWidth(); + height = target.getHeight(); + left = target.getX(); + top = target.getY(); + } + + @Override + public void prepare(@NonNull PromptOptions options, float targetX, float targetY) { + Log.d("TestPish", "NOT Ok constructor"); + + left = targetX; + top = targetY; + + } + + @Override + public void updateRipple(float revealModifier, float alphaModifier) { + + } +} diff --git a/app/src/main/java/com/npgames/insight/ui/book/top_panel/TopPanelView.java b/app/src/main/java/com/npgames/insight/ui/book/top_panel/TopPanelView.java index fb6a182..ddcbbdc 100644 --- a/app/src/main/java/com/npgames/insight/ui/book/top_panel/TopPanelView.java +++ b/app/src/main/java/com/npgames/insight/ui/book/top_panel/TopPanelView.java @@ -8,6 +8,7 @@ import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.annotation.RequiresApi; +import android.support.v4.app.FragmentActivity; import android.util.AttributeSet; import android.util.Log; import android.view.LayoutInflater; @@ -21,10 +22,15 @@ import com.npgames.insight.R; import com.npgames.insight.data.model.Stats; +import com.npgames.insight.ui.all.fragments.infoDialog.InfoDialog; +import com.npgames.insight.ui.book.bottom_new.actions.BottomActionConfirmDialog; import butterknife.BindView; import butterknife.ButterKnife; +import static com.npgames.insight.ui.all.fragments.infoDialog.InfoDialog.MESSAGE; +import static com.npgames.insight.ui.book.bottom_new.actions.BottomActionConfirmDialog.CONFIRMATION_TEXT; + public class TopPanelView extends FrameLayout implements View.OnClickListener { @BindView(R.id.text_view_stats_panel_mem_bar) protected TextView amnTextView; @@ -41,6 +47,20 @@ public class TopPanelView extends FrameLayout implements View.OnClickListener { @BindView(R.id.top_panel_menu_button_image_view) protected ImageView menuButtonImageView; + + @BindView(R.id.text_view_stats_panel_dex_title) + protected TextView dexTitleTextView; + @BindView(R.id.text_view_stats_panel_prc_title) + protected TextView prcTitleTextView; + @BindView(R.id.text_view_stats_panel_au_title) + protected TextView aurTitleTextView; + @BindView(R.id.text_view_stats_panel_hp_title) + protected TextView hpTitleTextView; + @BindView(R.id.text_view_stats_panel_time_title) + protected TextView timeTitleTextView; + @BindView(R.id.text_view_stats_panel_mem_title) + protected TextView amnTitleTextView; + private Animation inAnimation; private Animation outAnimation; @@ -125,9 +145,28 @@ private void init(final Context context, final AttributeSet attrs) { final ViewGroup layout = (ViewGroup) LayoutInflater.from(context).inflate(R.layout.layout_stats_panel, this, true); ButterKnife.bind(layout, this); menuButtonImageView.setOnClickListener(this); - } + amnTitleTextView.setOnClickListener(this); + amnTextView.setOnClickListener(this); + + dexTitleTextView.setOnClickListener(this); + dexTextView.setOnClickListener(this); + + timeTextView.setOnClickListener(this); + timeTitleTextView.setOnClickListener(this); + hpTitleTextView.setOnClickListener(this); + hpTextView.setOnClickListener(this); + + prcTitleTextView.setOnClickListener(this); + prcTextView.setOnClickListener(this); + + dexTitleTextView.setOnClickListener(this); + dexTextView.setOnClickListener(this); + + aurTitleTextView.setOnClickListener(this); + aurTextView.setOnClickListener(this); + } public void setStats(final Stats newStats) { Log.d("TestPish", "updatePlayerStatsWithoutAnimation"); @@ -224,6 +263,89 @@ public void onClick(final View view) { case R.id.top_panel_menu_button_image_view: topPanelClickListener.topPanelOnMenuClick(); break; + + case R.id.text_view_stats_panel_mem_bar: + case R.id.text_view_stats_panel_mem_title: + final InfoDialog memInfoDialog= new InfoDialog(); + memInfoDialog.show(((FragmentActivity) getContext()).getSupportFragmentManager(), StatsInfoDialog.STATS_INFO_DIALOG_TAG); + final Bundle memBundle = new Bundle(); + memBundle.putString(MESSAGE, getContext().getString(R.string.create_character_skill_info_amn)); + memInfoDialog.setArguments(memBundle); + break; +/* + new MaterialTapTargetPrompt.Builder((Activity) getContext()) + .setTarget(R.id.text_view_stats_panel_mem_bar) + .setSecondaryText(R.string.test) + .setPromptBackground(new TipPromptBackground()) + .show(); +*/ + + + +/* final int width = amnTextView.getWidth(); + final int height = amnTextView.getHeight(); + final int left = amnTextView.getLeft(); + final int top = amnTextView.getTop(); + final int text = amnTextView.getText();*/ + +/* final StatsInfoDialog statsInfoDialog = new StatsInfoDialog(); + final Bundle bundle = new Bundle(); + bundle.putInt("WIDTH", amnTextView.getWidth()); + bundle.putInt("HEIGHT", amnTextView.getHeight()); + bundle.putFloat("X", amnTextView.getX()); + bundle.putFloat("Y", amnTextView.getY()); + bundle.putString("TEXT", amnTextView.getText().toString()); + bundle.putFloat("TEXT_SIZE", amnTextView.getTextSize()); + statsInfoDialog.setArguments(bundle); + statsInfoDialog.show(((FragmentActivity)getContext()).getSupportFragmentManager(), StatsInfoDialog.STATS_INFO_DIALOG_TAG); + + Log.d("TestPish", "clickPerformedTHIS"); + break;*/ + + case R.id.image_view_stats_panel_time_bar: + case R.id.text_view_stats_panel_time_title: + final InfoDialog timeInfoDialog = new InfoDialog(); + timeInfoDialog.show(((FragmentActivity) getContext()).getSupportFragmentManager(), InfoDialog.INFO_DIALOG_TAG); + final Bundle timeBundle = new Bundle(); + timeBundle.putString(MESSAGE, getContext().getString(R.string.p501_t)); + timeInfoDialog.setArguments(timeBundle); + break; + + case R.id.image_view_stats_panel_hp_bar: + case R.id.text_view_stats_panel_hp_title: + final InfoDialog hpInfoDialog = new InfoDialog(); + hpInfoDialog.show(((FragmentActivity) getContext()).getSupportFragmentManager(), InfoDialog.INFO_DIALOG_TAG); + final Bundle hpBundle = new Bundle(); + hpBundle.putString(MESSAGE, getContext().getString(R.string.create_character_skill_info_hp)); + hpInfoDialog.setArguments(hpBundle); + break; + + case R.id.image_view_stats_panel_prc_bar: + case R.id.text_view_stats_panel_prc_title: + final InfoDialog prcInfoDialog = new InfoDialog(); + prcInfoDialog.show(((FragmentActivity) getContext()).getSupportFragmentManager(), InfoDialog.INFO_DIALOG_TAG); + final Bundle prcBundle = new Bundle(); + prcBundle.putString(MESSAGE, getContext().getString(R.string.create_character_skill_info_prc)); + prcInfoDialog.setArguments(prcBundle); + break; + + case R.id.image_view_stats_panel_dex_bar: + case R.id.text_view_stats_panel_dex_title: + final InfoDialog dexInfoDialog = new InfoDialog(); + dexInfoDialog.show(((FragmentActivity) getContext()).getSupportFragmentManager(), InfoDialog.INFO_DIALOG_TAG); + final Bundle dexBundle = new Bundle(); + dexBundle.putString(MESSAGE, getContext().getString(R.string.create_character_skill_info_dex)); + dexInfoDialog.setArguments(dexBundle); + break; + + case R.id.image_view_stats_panel_au_bar: + case R.id.text_view_stats_panel_au_title: + final InfoDialog aurInfoDialog = new InfoDialog(); + aurInfoDialog.show(((FragmentActivity) getContext()).getSupportFragmentManager(), InfoDialog.INFO_DIALOG_TAG); + final Bundle aurBundle = new Bundle(); + aurBundle.putString(MESSAGE, getContext().getString(R.string.create_character_skill_info_aur)); + aurInfoDialog.setArguments(aurBundle); + break; } } diff --git a/app/src/main/res/layout/fragment_bottom_action_confirm_dialog.xml b/app/src/main/res/layout/fragment_bottom_action_confirm_dialog.xml index d1b5980..fa4a380 100644 --- a/app/src/main/res/layout/fragment_bottom_action_confirm_dialog.xml +++ b/app/src/main/res/layout/fragment_bottom_action_confirm_dialog.xml @@ -11,6 +11,13 @@ android:orientation="vertical" app:layout_constraintGuide_percent="0.2" /> + + + app:layout_constraintTop_toTopOf="@+id/guideline_top" + app:layout_constraintBottom_toTopOf="@+id/bottom_action_confirm_dialog_body_layout_scroll_view"> - + app:layout_constraintBottom_toTopOf="@+id/confirm_dialog_buttons_constraint_layout" + app:layout_constraintTop_toBottomOf="@+id/bottom_action_confirm_dialog_title_layout" > + + + + app:layout_constraintTop_toBottomOf="@+id/bottom_action_confirm_dialog_body_layout_scroll_view"> + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_info_dialog.xml b/app/src/main/res/layout/fragment_info_dialog.xml new file mode 100644 index 0000000..b9e9d1e --- /dev/null +++ b/app/src/main/res/layout/fragment_info_dialog.xml @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_tip_dialog.xml b/app/src/main/res/layout/fragment_tip_dialog.xml new file mode 100644 index 0000000..fd3d7fe --- /dev/null +++ b/app/src/main/res/layout/fragment_tip_dialog.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_stats_panel.xml b/app/src/main/res/layout/layout_stats_panel.xml index c876587..3de3c1f 100644 --- a/app/src/main/res/layout/layout_stats_panel.xml +++ b/app/src/main/res/layout/layout_stats_panel.xml @@ -1,6 +1,5 @@ - @@ -16,9 +15,9 @@ @@ -28,8 +27,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingLeft="8dp" - android:paddingRight="8dp" android:paddingTop="@dimen/spacing_8" + android:paddingRight="8dp" android:paddingBottom="4dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" @@ -52,8 +51,8 @@ android:id="@+id/image_view_stats_panel_dex_bar" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginLeft="@dimen/spacing_8" android:gravity="start|center_vertical" + android:paddingLeft="@dimen/spacing_8" android:textAppearance="@style/D" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_weight="1" @@ -117,14 +116,14 @@ android:id="@+id/bottom_row" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingTop="4dp" android:paddingLeft="8dp" + android:paddingTop="4dp" android:paddingRight="8dp" android:paddingBottom="@dimen/spacing_8" android:textAppearance="@style/D" - app:layout_constraintTop_toBottomOf="@+id/top_row" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent"> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/top_row"> Медицинская справка Здесь представлены параметры, с которыми вы начинаете игру.\n\nЕщё четыре очка опыта вы можете распределить между последними двумя параметрами на своё усмотрение. - Здоровье – название говорит само за себя. Если вы получите ранение, ваше Здоровье снизится. В каждом конкретном случае в книге будет указано, на сколько единиц вы должны его уменьшить. Если оно снизится до нуля, это будет означать гибель от ран. Придётся начинать всё с начала. В начале игры ваше Здоровье равно 16. Его можно восстанавливать с помощью аптечек и в лечебной капсуле, но оно никогда не может превышать 22. - Каждое разумное существо имеет ауру, цвет которой может меняться в зависимости от поступков и психологического состояния. Хорошие дела осветляют ауру, плохие затемняют. Аура определяется с помощью прибора называемого аурометр. Для удобства параметр представлен в виде чисел, где нуль – нейтральность (полное равнодушие ко всему), от плюс одного – положительные качества, от минус одного – отрицательные. На изменение АУРЫ также влияют страх, зависть, ненависть, выдающиеся свершения и т.д. Казалось бы, не самый важный параметр, но в жизни бывают разные ситуации. Возможно, случится так, что плохие или хорошие поступки отразятся на АУРЕ и повлияют на ваше будущее. - Параметр меткости влияет на точность стрельбы и глазомер. Чем он выше, тем больше шансов попасть в цель. - Ловкость – это умение двигаться, преодолевать препятствия, общая подвижность. Чем она выше, тем вы быстрее и выносливее. В данной игре на величину Ловкости будет влиять количество снаряжения, которое вы несёте на себе. + Здоровье\n\nПолучая ранения, снижается ваш показатель Здоровья. Если оно снизится до нуля, это будет означать гибель от ран - придётся начинать всё с начала. Здоровье можно восстанавливать с помощью аптечек и в лечебной капсуле, но оно никогда не может превышать 22. + Аура\n\nАура меняется в зависимости от поступков и психологического состояния. Параметр представлен в виде чисел, где нуль – нейтральность (полное равнодушие ко всему), от плюс одного – положительные качества, от минус одного – отрицательные. Возможно, случится так, что плохие или хорошие поступки отразятся на АУРЕ и повлияют на ваше будущее. + Меткость\n\nПараметр меткости влияет на точность стрельбы и глазомер. Чем он выше, тем больше шансов попасть в цель. + Ловкость\n\nЧем выше ловкость, тем вы быстрее и выносливее. На этот параметр влияет количество снаряжения, которое вы несёте на себе. + Память.\n\nГерой этой игры страдает амнезией, но в ходе приключений что-то будет им вспоминаться, заполняя пробелы прошлого. За каждое такое озарение вы получаете очко памяти. Возможно, благодаря этому ему удастся вспомнить что-то важное. + Время\n\nЯчейка времени - это игровой термин, не привязанный к точному количеству минут или часов. Посещение локаций занимает время, которое у вас будет ограниченно. Всего доступно 30 клеток времени. Сбросить Продолжить @@ -81,4 +83,6 @@ Отправится в лечебную капсулу Посещение оружейной комнаты отнимет у вас одну единицу времени Выйти в главное меню + + Здоровье – название говорит само за себя. Если вы получите ранение, ваше Здоровье снизится. В каждом конкретном случае в книге будет указано, на сколько единиц вы должны его уменьшить. Если оно снизится до нуля, это будет означать гибель от ран. Придётся начинать всё с начала.\n\nВ начале игры ваше Здоровье равно 16. Его можно восстанавливать с помощью аптечек и в лечебной капсуле, но оно никогда не может превышать 22. diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 0b66263..7f5f28a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu Feb 21 00:15:18 MSK 2019 +#Mon May 20 14:44:08 MSK 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip